gpt4 book ai didi

java - JPA 在成员集合上使用聚合函数选择新的

转载 作者:行者123 更新时间:2023-12-01 15:51:11 24 4
gpt4 key购买 nike

我有一个如下查询:

Select new mypackage.MyClass( u, max(sc.serviceDate))
from Unit u left join u.serviceCalls sc
where u.organization.key = :organizationKey

所以,我的映射是我有一个 Unit,它有一个 ServiceCalls (FetchType.LAZY) 的集合,并且还有一个组织。每个 ServiceCall 都有一个 serviceDate。

在我的查询中,我想选择整个单元,但不是所有服务调用。我想获取最新的 serviceDate(如果存在)。

尝试通过 postgres 上的 eclipselink 执行查询会得到以下结果(我从查询输出中删除了一些选定的字段)

Internal Exception: org.postgresql.util.PSQLException: ERROR: column "t0.key" must appear in the GROUP BY clause or be used in an aggregate function
Position: 8
Error Code: 0
Call: SELECT t0.KEY, MAX(t1.service_date) FROM unit t0 LEFT OUTER JOIN service_call t1 ON (t1.unit_key = t0.KEY), organization t2 WHERE ((t2.KEY = ?) AND (t2.KEY = t0.organization_key))

看起来 max 正在应用于所有服务调用,而不是为我提供每个单元的最大值。有没有办法做到这一点,或者我是否必须获取所有服务调用并以这种方式获得最大值?

最佳答案

最后需要group by u吗?

关于java - JPA 在成员集合上使用聚合函数选择新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005218/

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