我有一个人有一套书的人。在特定情况下进行有序或排序的收集是没有意义的。休眠:订购一套
现在说我有一个搜索页面,其中有一个表格,显示Person和Book的连接。我希望能够通过来自Person和Book的字段对结果进行排序,然后从Hibernate中获取List,并对其进行迭代。
由于集合是一个集合,书籍的排序已经消失(Hibernate的PersistentSet封装了一个没有排序的书籍HashSet)。
所以,采用这种方法我不能有也由书籍字段排序的结果。
如果我将集合从Set更改为List,那么我的模型在语义上不正确。在模型中保持秩序没有意义。
有没有一种方法来保持图书的排序?也许有一种方法让PersistentSet包装LinkedHashSet(它是有序的),其中的顺序是由我的搜索标准定义的?
干杯!
感谢您的回复(+1)。是的,我见过。但在这个例子中,他们已经确定排序是在某个领域。我希望通过Criteria API设置该字段,具体取决于用户在UI中单击的内容。 – 2010-04-01 13:26:17
您也可以在Criteria查询中指定结果的排序,与您在映射中指定的任何内容分开。 http://docs.jboss.org/hibernate/stable/core/reference/en/html/querycriteria.html#querycriteria-ordering – 2010-04-01 14:40:14
是的,你可以,但不幸的顺序在映射(或@OrderBy)优先,这使得由Criteria设置的排序无用。或者至少,它是在排序映射的排序之后出现的。 – 2010-04-12 09:45:25