0

hibernate 4的文档中指定如下:

7.2.2.1。列表

列表可以通过两种不同的方式映射:

作为有序列表,其中订单未在数据库中具体化

作为索引列表,其中订单在数据库中具体化

要在内存中排序列表,请将 @javax.persistence.OrderBy 添加到您的属性中。此注释将逗号分隔的属性列表(目标实体的)作为参数,并相应地对集合进行排序(例如,名字 asc、年龄 desc、权重 asc 最后为空),如果字符串为空,则集合将按主排序目标实体的键。

我不明白关于 “要在内存中订购列表,请将@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?非常感谢你的帮助:-)

4

1 回答 1

0

排序将通过order by在生成的 SQL 中添加一个子句来完成,因此数据库将处理排序。

hibernate.show_sql通过设置配置属性,可以将 Hibernate 配置为显示 SQL 。

有关配置此属性的信息,请参阅 hibernate 文档。

于 2013-06-05T08:32:40.480 回答