Java 仅限最长日期

Java 仅限最长日期,java,criteria,criteria-api,Java,Criteria,Criteria Api,我试图了解如何从加入中仅选择记录上的最新日期。My People实体与成员实体合并。My Membership实体具有RefMembership状态实体。。我正在尝试仅从成员实体中选择最新日期。。。我的发言如下: Join membershipPath=root.Join(人员\成员列表); //Membership具有属性:Membership\ membershipStatusDate--我必须仅检索membershipStatusDate中的最新(最新)日期。。 Join progPath

我试图了解如何从加入中仅选择记录上的最新日期。My People实体与成员实体合并。My Membership实体具有RefMembership状态实体。。我正在尝试仅从成员实体中选择最新日期。。。我的发言如下:

Join membershipPath=root.Join(人员\成员列表);
//Membership具有属性:Membership\ membershipStatusDate--我必须仅检索membershipStatusDate中的最新(最新)日期。。
Join progPath=membershipPath.Join(Membership.refMembershipStatus);
add(cb.and(progPath.in(selectedStatus));

有两种方法可以做到这一点

或者您需要添加一个查找最大日期的谓词。在
CriteriaBuilder
API中,您将使用
grest
方法。它看起来像这样:

Root<Membership> membership = criteria.from(Membership.class);
predicateList.add(cb.greatest(membership.get(Membership_.membershipStatusDate)));
criteriaQuery.orderBy(cb.desc(membership.get(Membership_.membershipStatusDate)));
entityManager.createQuery(criteriaQuery).getFirstResult();