gpt4 book ai didi

java - JPA 查询中子对象的排序返回

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:39 24 4
gpt4 key购买 nike

所以如果我的 JPA 查询是这样的:Select distinct p from Parent p left join fetch p.children order by p.someProperty

我正确地得到了按 p.someProperty 排序的结果,并且我正确地得到了我的 p.children 集合急切获取和填充。但我希望我的查询类似于“按 p.someProperty、p.children.someChildProperty 排序”,以便每个父对象中填充的集合由 someChildProperty 进行子排序。

当我考虑为这些调用实际生成的 sql 时,这似乎很直观,但当它试图映​​射回分层对象时,我猜想就不那么直观了。

最佳答案

要保留顺序,请使用 TreeSet .就父级内部的集合排序而言,只需在您的代码中使用 Comparator 即可。 .

好吧,在您的父实体类中的集合定义上试试这个。我希望你明白我的意思。

您可以使用这个 JPA 注释,

@javax.persistence.OrderBy(value = "fieldName")

或者这个 Hibernate 特定的,

@org.hibernate.annotations.OrderBy(clause = "FIELD_NAME asc")

你也可以用这个,

@org.hibernate.annotations.Sort(type = SortType.NATURAL)

@org.hibernate.annotations.Sort(type = SortType.COMPARATOR)

在比较器的情况下,必须有一个比较器。其他可能仅适用于字符串集合。

关于java - JPA 查询中子对象的排序返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/408051/

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