使用JPQL / HQL在JPA中对连接提取集合进行排序

鉴于以下JPQL语句,我如何修改它,以便结果列表中的小猫按其age属性排序?

 SELECT c FROM Cat c left join fetch c.kittens WHERE c.id = :id 

我尝试了多个approches,但没有任何运气。 这基本上是我想要做的,但它不起作用:

 SELECT c FROM Cat c left join fetch c.kittens k WHERE c.id = :id ORDER BY k.age 

HEJ,

我认为使用查询应用时不可能。 但据我记忆,您可以使用它在映射中为集合添加默认排序:

 @OrderBy("myColumName asc") 

除了@ bigZee77的答案,您还可以更改您的查询和查询小猫而不是猫。 由此产生的小猫名单将被订购,每只小猫都会指向同一只猫:

 select k from Cat c inner join fetch c.kittens k where c.id = :id order by k.age 

如果猫没有任何小猫,你会得到一个空列表。

另一种选择当然是提供一种Java方法,对小猫列表进行排序。