从数据库中检索时对hibernate集合进行排序

sch*_*mmd 10 java hibernate

我有一个带有Bar列表的对象Foo.有没有办法设置我的类,以便getBars()将返回一个已用Collections.sort排序的List?换句话说,我想在首次填充列表时运行Collections.sort.目前,我在检索集合时调用sort,这可能是多余的,很容易被遗忘.

Mat*_*all 25

您是使用带有Hibernate XML文件的J2EE样式映射,还是使用JPA注释的JavaBeans?

如果您正在使用JPA,则可以使用@OrderBy注释让数据库为您对集合进行排序.您也可以@Sort在Java端使用它.

最后,如果您正在编写HQL - 例如,在@NamedQuery- 中 - 您可以使用该ORDER BY子句.

有很多方法可以做到!


Sea*_*oyd 7

我想如果你注释属性,@Sort它会自动排序

您还可以选择指定自定义Comparator类:

@Sort(comparator=MyComparator.class, type=SortType.COMPARATOR)
Run Code Online (Sandbox Code Playgroud)

参考: