gpt4 book ai didi

java - 仅 CriteriaBuilder 最大日期

转载 作者:行者123 更新时间:2023-12-05 03:10:46 27 4
gpt4 key购买 nike

我正在尝试了解如何从联接中仅选择记录上的最新日期。我的 People 实体与 Membership 实体相结合。我的成员(member)实体有一个 RefMembershipStatus 实体。我试图从成员(member)实体中仅选择最新日期......我的加入如下所示:

Join<People, Membership> membershipPath = root.join(People_.membershipList);

//Membership has property: Membership_.membershipStatusDate -- I must retrieve ONLY the latest (most current) date in membershipStatusDate..

Join<Membership, RefMembershipStatus> progPath = membershipPath.join(Membership_.refMembershipStatus);
predicateList.add(cb.and(progPath.in(selectedStatus)));

最佳答案

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

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

Root<Membership> membership = criteria.from(Membership.class);
predicateList.add(cb.greatest(membership.get(Membership_.membershipStatusDate)));

或者您可以使用 orderBy 然后使用 getFirstResult 选择第一个结果:

criteriaQuery.orderBy(cb.desc(membership.get(Membership_.membershipStatusDate)));
entityManager.createQuery(criteriaQuery).getFirstResult();

关于java - 仅 CriteriaBuilder 最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com