我有两个实体:
- Account,包含属性 accountId
- ImportRun,它有一个属性 runId。从 ImportRun 到 Account 存在一对多(双向)关系。
可能有多个具有相同 accountId 的帐户引用具有不同 runId 的不同 ImportRuns(例如,每天一个)。
我想获取给定一组 accountIds 的最新 runIds(这是一种业务密钥,而不是休眠实体密钥),甚至更好的是一组 Accounts,其中每个账户都引用最新的现有 ImportRun(这样此 ImportRun 的 runId 在具有此 accountId 的 Accounts 引用的所有 ImportRuns 中具有最高的 runId。换句话说:我想获得最新的帐户。不幸的是,我不能使用本机 SQL,那会很容易。我已经设法用 JPQL 只用一个给定的 accountId 来做这种事情,但我不知道如何通过几个给定的 accountId 对每个 runId 的最大结果进行分组。
我怎么能用 JPQL 做到这一点?