hibernate找到表中的最后一个元素的麻烦

时间:2012-08-14 07:43:24

标签: hibernate hql

我试图找到插入表格的最后一个元素。

我试着这样写:

m_query = m_session.createQuery("LAST(bankAccount) FROM AccountStatus");

想要记录的名称是bankAccount,表名是AccountStatus

我该怎么写呢?

非常感谢,

P.S

这是一个休眠查询

3 个答案:

答案 0 :(得分:1)

关系模型中的“表”设置了语义。没有“最后”元素,排序可以是任意的。您需要引入一个排序标准,如插入日期的时间戳。有不同的可能实现。您可以通过简单的只读(对于用户,而不是Hibernate!)字段在Java对象模型上执行此操作,该字段通过数据库级​​别的触发器或Hibernate生命周期侦听器初始化为当前时间。然后,您可以轻松获得具有最新插入日期的实体。

答案 1 :(得分:1)

如果你的表中有id,你可以通过max id找到最后一个元素

m_query = m_session.createQuery("max(id) FROM AccountStatus");

答案 2 :(得分:0)

如果表格中存在自动增量ID列,您还可以使用:

m_query = m_session.createQuery("a1.bankAccount FROM AccountStatus a1 where not exists (a2.bankAccount FROM AccountStatus a2 where a2.id>a1.id)");