Java 使用JPA2标准API选择最大时间戳

Java 使用JPA2标准API选择最大时间戳,java,generics,jpa-2.0,java-ee-6,criteria-api,Java,Generics,Jpa 2.0,Java Ee 6,Criteria Api,因此,我的实体: @Column(name="TS", nullable=false) private java.sql.Timestamp timestamp; 我生成的元模型具有: public static volatile SingularAttribute<MyEntity,Timestamp> timestamp; 公共静态属性时间戳; 我想按最大时间戳值选择: Root<MyEntity> root = query.from(MyEntity.cla

因此,我的实体:

@Column(name="TS", nullable=false)
private java.sql.Timestamp timestamp; 
我生成的元模型具有:

public static volatile SingularAttribute<MyEntity,Timestamp> timestamp;
公共静态属性时间戳;
我想按最大时间戳值选择:

Root<MyEntity> root = query.from(MyEntity.class);
Expression maxExpression = cb.max(root.get(MyEntity_.timestamp));
Root=query.from(MyEntity.class);
表达式maxExpression=cb.max(root.get(MyEntity_u2;timestamp));
但我不被允许,因为:

max(表达式x)
应用数值最大值操作创建聚合表达式。
表达式

当然,
Timestamp
不会扩展
Number

如何使用typesafe Criteria API在
时间戳
列上执行
MAX

而不是时间戳(以及日期、字符串和其他可比数据)。若你们需要最小值作为时间戳,那个么就用最小值法代替

类似的问题可能面临较少/较多/相等的比较。第一个接受扩展数字的参数,第二个用于其他可比数据:

  • vs
  • vs
  • vs
  • vs

sub.where(cb.grest(histors.get(“activeDate”));[ERROR]必需:javax.persistence.criteria.Expression[ERROR]found:javax.persistence.criteria.Path[ERROR]原因:推断类型不符合上界@SeSong同一问题,我该怎么办?我使用max代替sub.where(cb.max(histories.get(History_u.activeDate.getName()));而CriteriaBuilder least()表示最小值。是的,这就是第二句中所说的。