gpt4 book ai didi

java - 从主记录访问基于列表的记录

转载 作者:搜寻专家 更新时间:2023-10-30 20:45:07 24 4
gpt4 key购买 nike

我有一个表 - 我们称它为 AAA,它对另一个表有一对多的定义,分配了 BBB。它看起来像这样:

public class AAA
{
...
@OneToMany(orphanRemoval=true, fetch=FetchType.LAZY, mappedBy="aaa")
private List<BBB> bbbs;
...
}

我想运行一个 JPA 查询,它将为我提供所有具有多个 BBB 的 AAA,因此我使用了 SIZE(aaa.bbbs)。但是,我希望结果集按每个 aaa 中第一个 bbb 的时间戳排序。

一个现实生活中的例子:我想得到我所有的 facebook friend ,按照每个人添加到他们的个人资料中的最新图片排序。在这种情况下,AAA 是“ friend ”,BBB 将是“图片”,我想按 Picture.CreatedTimestamp 订购 friend 。

我基本上需要访问每个 aaa 的 bbbs 中的第一个项目,并按它排序。为了实现该目标应该做什么?

最佳答案

因此,您需要通过 bbbs 进行两个聚合 - 一个用于确定大小,另一个用于查找最新的时间戳。可以用JOINGROUP BY来表示:

SELECT a
FROM AAA a JOIN a.bbbs b
GROUP BY a.id, a.column1, a.column2
HAVING COUNT(b) > 1
ORDER BY MAX(b.timestamp) DESC

关于java - 从主记录访问基于列表的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4603974/

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