【发布时间】:2014-08-08 06:07:26
【问题描述】:
我有 3 个实体:
拥有设置画廊的用户。 已设置照片的图库。
现在我想按创建时间选择所有用户的最后 3 张照片(用户可能有 10 个画廊和每个画廊 100 张照片)。 jpql怎么办?
我不知道如何获得下面的前 3 张照片(从 p 中选择前 3):
Query q = em.createQuery("select u, (select top 3 from p) from User u left join u.galleries g left join g.photos p ");
我知道我只能通过以下方式获得一位用户的前 3 张照片:
Query q = em.createQuery("select u, p from User u left join u.galleries g left join g.photos p where u.id =:userId").setMaxResults(3);
但是一个 jpql 中的所有用户呢?
提前致谢。
【问题讨论】:
-
如何知道最后3张照片,是上传时间还是创建时间?
-
哪个部分你不明白,join、sort还是limit?
-
请使用
created time更新您的问题以用于最后 3 张照片,以及到目前为止您尝试过的代码和结果!