【发布时间】:2010-02-19 12:55:50
【问题描述】:
说,我有一个实体,它有一个集合的操作历史。我想按最新操作的日期对实体进行排序(这是历史的第一个元素)。
我想做这样的事情:
criteria.addOrder(Order("history[0].date"))
这可能吗?
【问题讨论】:
标签: java hibernate orm detachedcriteria hibernate-criteria
说,我有一个实体,它有一个集合的操作历史。我想按最新操作的日期对实体进行排序(这是历史的第一个元素)。
我想做这样的事情:
criteria.addOrder(Order("history[0].date"))
这可能吗?
【问题讨论】:
标签: java hibernate orm detachedcriteria hibernate-criteria
据我所知,Criteria 仅支持按映射属性排序,因此也许将上次修改日期映射为计算属性(使用 formula attribute of the property tag)可以解决问题。
当然,这很丑陋,但由于到目前为止没有人发布更好的方法......
编辑:查询也可能表现不佳,也许将其作为冗余列添加到您的实体表中是一个更好的选择。
【讨论】:
完全不可能。
您的历史数据在另一个表中,要按此关系排序,您将需要更复杂的标准,至少涉及到其他表的某种连接,我怀疑可能是别名。
发布您的班级的映射,我们或许可以给出如何做到这一点的提示。
【讨论】: