0

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

我试着这样写:

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

通缉记录的名称是bankAccount,表的名称是AccountStatus

我应该如何正确写?

非常感谢,

ps

这是一个休眠查询

以利

4

3 回答 3

2

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

m_query = m_session.createQuery("max(id) FROM AccountStatus");
于 2012-08-14T08:36:13.983 回答
1

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

于 2012-08-14T08:18:34.053 回答
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)");
于 2013-03-01T10:27:12.927 回答