vuelo tiempo fisica definicion altura java generics jpa-2.0 java-ee-6 criteria-api

java - altura - tiempo de vuelo fisica definicion



Seleccione la marca de tiempo MAX con la API de criterios JPA2 (1)

En lugar de max , tiene que usar CriteriaBuilder.greatest para Timestamp (y también para Date, String y otros comparables). Y si alguna vez necesitas MIN para Timestamp, usa el método menos

Se puede enfrentar un tipo similar de problema con comparaciones menores / mayores / iguales. Firs one acepta el argumento que extiende el Número, el segundo es para otros comparables:

  • lt vs. lessThan
  • le vs. lessThanOrEqualTo
  • ge vs. greaterThanOrEqualTo
  • gt vs mayor que

Así que mi entidad tiene:

@Column(name="TS", nullable=false) private java.sql.Timestamp timestamp;

Mi MetaModel generado tiene:

public static volatile SingularAttribute<MyEntity,Timestamp> timestamp;

Quiero seleccionar por el valor de Max Timestamp:

Root<MyEntity> root = query.from(MyEntity.class); Expression maxExpression = cb.max(root.get(MyEntity_.timestamp));

Pero no se me permite porque:

max(Expression<N> x) Crea una expresión agregada aplicando la operación numérica max. <N extends java.lang.Number> Expresión

Por supuesto, la Timestamp no se extiende Number .

¿Cómo puedo hacer un MAX en una columna de Timestamp utilizando la API de criterios de escritura segura?

Gracias.