Bri*_*con 6 java hibernate jpa
因此,如果我的JPA查询是这样的:从父p中选择不同的p通过p.someProperty从左边连接获取p.children顺序
我正确地得到了p.someProperty排序的结果,并且我正确地获取并填充了我的p.children集合.但我希望我的查询类似于"按p.someProperty,p.children.someChildProperty排序",以便填充每个父对象内部的集合由someChildProperty进行子排序.
当我考虑实际为这些调用生成的sql时,这似乎是直观的,但我想当它尝试映射回分层对象时更少.
Ade*_*ari 15
要保留顺序,请使用TreeSet.至于父类内部集合的排序,只需使用Comparator在代码中进行.
好吧,在父实体类的集合定义中尝试这个.我希望你明白我的观点.
你可以使用这个JPA注释,
@javax.persistence.OrderBy(value = "fieldName")
Run Code Online (Sandbox Code Playgroud)
或者这个特定的Hibernate,
@org.hibernate.annotations.OrderBy(clause = "FIELD_NAME asc")
Run Code Online (Sandbox Code Playgroud)
你也可以用这个,
@org.hibernate.annotations.Sort(type = SortType.NATURAL)
Run Code Online (Sandbox Code Playgroud)
要么
@org.hibernate.annotations.Sort(type = SortType.COMPARATOR)
Run Code Online (Sandbox Code Playgroud)
在比较器的情况下,必须有比较器.其他可能只适用于String集合.
如果您使用 springboot 和 jpa 这是示例
在父类中添加如下代码
@OneToMany(mappedBy = "user")
@OrderBy(value = "position desc ")
private List<UserAddresses> userAddresses;
Run Code Online (Sandbox Code Playgroud)
上面的代码中,position是UserAddresses类中的字段名, desc是顺序。您可以像 sql order by 一样传递asc或desc 。
归档时间: |
|
查看次数: |
11813 次 |
最近记录: |