Hibernate 文档:@OrderBy - 它是不是在内存中排序?
Posted
技术标签:
【中文标题】Hibernate 文档:@OrderBy - 它是不是在内存中排序?【英文标题】:Hibernate documentation:@OrderBy - is it sorted in memory?Hibernate 文档:@OrderBy - 它是否在内存中排序? 【发布时间】:2013-06-05 08:30:26 【问题描述】:在hibernate 4 的文档中指定如下:
7.2.2.1。列表
可以通过两种不同的方式映射列表:
作为有序列表,其中的顺序未在数据库中具体化
作为索引列表,订单在数据库中具体化
要在内存中排序列表,请将@javax.persistence.OrderBy 添加到您的 财产。此注释将逗号分隔的列表作为参数 (目标实体的)属性并对集合进行排序 相应地(例如 firstname asc、age desc、weight asc nulls last),如果 字符串为空,集合将按主键排序 目标实体。
我不明白关于那个的注释 “要在内存中排序列表,请将@javax.persistence.OrderBy 添加到您的属性中”
将使用 SQL orderby 将排序过程放入 DBMS 的内存中还是放入我的 java 应用程序的内存中??
如果我只使用简单的一对多关系对其进行测试:(一个用户有多个帐户)使用这样的片段
@javax.persistence.OrderBy("account-sum ASC, date DESC") //
private Set<Account> accounts= new HashSet<>();
order by 子句将显示在 HQL 语句中......
是否可以看到基于 HQL 语句生成的 SQL? 非常感谢您的帮助:-)
【问题讨论】:
【参考方案1】:排序将通过在生成的 SQL 中添加 order by
子句来完成,以便数据库处理排序。
可以通过设置 hibernate.show_sql
配置属性来配置 Hibernate 以显示 SQL。
See the hibernate documentation for configuring this property.
【讨论】:
以上是关于Hibernate 文档:@OrderBy - 它是不是在内存中排序?的主要内容,如果未能解决你的问题,请参考以下文章