0

我有以下 HQL 查询

"select distinct p from Participant p left join fetch p.basketItemViewStates as bi where p.basket.id = ?1 order by p.lastName"

哪里Participant有子列表BasketItemViewStates和 BasketItemViewStates 进一步有一个名为一对一关系的子

   @OneToOne(cascade = CascadeType.MERGE)
    private BasketItem basketItem;

BasketItem 有sortOrder as a column,我希望在连接中获取的列表应该基于该 sortOrder 进行排序。

谁能解释一下,我怎么能在上面的查询中做到这一点

4

1 回答 1

0

您可以 , bi.sortOrder在 hql 请求的末尾添加:

select distinct p from Participant p left join fetch p.basketItemViewStates as bi where p.basket.id = ?1 order by p.lastName, bi.sortOrder

您还可以使用您孩子的 sortedCollection 并Comparable在您的孩子实体上实现接口并指定休眠您希望此集合按自然顺序排序。

[编辑]编辑你的问题后,我认为这样的事情应该有效:

select distinct p from Participant p left join fetch p.basketItemViewStates as bi left join bi.basketItem as bitem where p.basket.id = ?1 order by p.lastName, bitem.sortOrder
于 2013-03-19T12:38:59.703 回答