2010-09-27 65 views
0

如何从某个表中获取最近添加的行,该行满足一定的条件。如何从某个表中获取最近添加的行

如果使用javax/persistence/Query.html#getSingleResult(),如果有多个满足查询的行,则会得到NonUniqueResultException。我需要从列表中找到相同的findOne。我不想通过将rowsPerPage设置为1来分页,然后获取resultSet。

回答

2

您表示自己不希望使用“rowsPerPage”,但这是做一个正确的方法:

query.setMaxResults(1) 

然而,这并不能保证该行是最近的,除非您查询包含日期的条件。如果你没有这样的列,并且你没有使用自动增量(这应该是最后的手段),你无法实现你的目标。

0

jpa和hibernate要求每行必须有唯一的id。所以选择id = max(id)的行。这在大多数情况下都是可用的,在这种情况下id的生成是增量式例如,不知道如何获取它,如果id是一个字符串。

+0

这是依赖于id的生成策略,我有点犹豫使用这种技术 – Sam 2010-09-28 03:14:02

相关问题