如何通过集合的某些属性创建Hibernate Criteria来订购

时间:2010-02-19 12:55:50

标签: java hibernate orm detachedcriteria hibernate-criteria

说,我有一个具有作为集合的操作历史的实体。我想按最新操作的日期对实体进行排序(这是历史的第一个元素)。

我想做这样的事情:

criteria.addOrder(Order("history[0].date"))

这可能吗?

2 个答案:

答案 0 :(得分:1)

根本不可能。

您的历史记录的数据位于另一个表中,按此关系排序,您将需要更复杂的标准,至少涉及到另一个表的某种联接,我怀疑可能是别名。

发布您的课程的映射,我们或许可以提示如何执行此操作。

答案 1 :(得分:1)

据我所知,Criteria仅支持按映射属性排序,因此将上次修改的日期映射为计算属性(使用formula attribute of the property tag)也可以。

当然,这很难看,但是到目前为止还没有人发布更好的方法......

编辑:查询也可能执行得不太好,或许将其作为冗余列添加到实体表中是一个更好的选择。