Spring Data JPA对嵌套集合进行排序

时间:2013-07-25 15:53:48

标签: spring hibernate sorting jpa spring-data

我有以下域对象:

@Entity
public class Item {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   private Long id;
   private String name;

   @OneToMany
   private List<PropertyDefinition> propertyDefinitions;
}

@Entity
public class PropertyDefinition {

   @Id
   private Long id;

   private final String name;
   private final String value;
}

我想对项目进行排序,例如名为PropertyDefinition.value的 </p> <p>我怎么能用Spring Data JPA做到这一点?</p> <pre><code>Iterable<Item> items = itemRepository.findAll(new Sort("???")); </code></pre> <p>示例代码可以在这里找到:<br/> <a href="https://github.com/altfatterz/sort-poc/" rel="nofollow">https://github.com/altfatterz/sort-poc/</a> </P> <p>任何反馈意见。</p> </div> <div class="answer-list"> <h4>1 个答案:</h4> <div class="hr-line-dashed"></div> <p>答案 0 :(得分:8)</p> <div class="answer markdown-body"> <p>您可以使用JPA或Hibernate <code>@OrderBy</code>注释:</p> <pre><code>@OneToMany @OrderBy("value ASC") // sort by value ASC private List<PropertyDefinition> propertyDefinitions; </code></pre> <p>否则,您可以创建自己的查询,使用<code>Criteria</code>或HQL <code>Query</code>对其进行排序。</p> </div> </div> </div> <div class="right"> <div style="height:400px"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6263610230477973" data-ad-slot="2820756182" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div style="height:20px"></div> <div class="releated-question-wrapper"> <div class="header"> 相关问题 </div> <div class="hr-line-dashed"></div> <ul> <li> <a href="/q/17862967">Spring Data JPA对嵌套集合进行排序</a> </li> <li> <a href="/q/28538555">Spring Data JPA上嵌套的@Transactional注释行为</a> </li> <li> <a href="/q/28571688">Spring Data JPA:查找嵌套对象</a> </li> <li> <a href="/q/30186320">带有spring数据jpa和eclipselink的嵌套查询</a> </li> <li> <a href="/q/35546761">Spring数据jpa持久嵌套更改</a> </li> <li> <a href="/q/37205632">避免在Spring Data Jpa中加载LAZY集合</a> </li> <li> <a href="/q/44978290">Spring Data JPA,基于嵌套集合</a> </li> <li> <a href="/q/52310031">Spring Data JPA按嵌套对象集合大小排序</a> </li> <li> <a href="/q/52576575">Spring Data JPA限制嵌套集合大小为Pageable</a> </li> <li> <a href="/q/56418009">通过嵌套对象ID(嵌套两次)查找Spring Data JPA</a> </li> </ul> </div> <div class="releated-question-wrapper"> <div class="header"> 最新问题 </div> <div class="hr-line-dashed"></div> <ul> <li> <a href="/q/68614764">我写了这段代码,但我无法理解我的错误</a> </li> <li> <a href="/q/68614678">我无法从一个代码实例的列表中删除 None 值,但我可以在另一个实例中。为什么它适用于一个细分市场而不适用于另一个细分市场?</a> </li> <li> <a href="/q/68614175">是否有可能使 loadstring 不可能等于打印?卢阿</a> </li> <li> <a href="/q/68614313">java中的random.expovariate()</a> </li> <li> <a href="/q/68614125">Appscript 通过会议在 Google 日历中发送电子邮件和创建活动</a> </li> <li> <a href="/q/68615109">为什么我的 Onclick 箭头功能在 React 中不起作用?</a> </li> <li> <a href="/q/68615123">在此代码中是否有使用“this”的替代方法?</a> </li> <li> <a href="/q/68614097">在 SQL Server 和 PostgreSQL 上查询,我如何从第一个表获得第二个表的可视化</a> </li> <li> <a href="/q/68614427">每千个数字得到</a> </li> <li> <a href="/q/68615239">更新了城市边界 KML 文件的来源?</a> </li> </ul> </div> <div class=""> </div> </div> </div> <div> <script> var host = window.location.host; if (host == "www.thinbug.com") { (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); } </script> </body> </html>