【发布时间】:2017-02-23 13:33:07
【问题描述】:
如图,我需要在MySQL中使用hibernate的bookingID列的最后一个值。
@SuppressWarnings("unchecked")
@Override
public Booking listBookingsID() {
Session session = this.sessionFactory.getCurrentSession();
Booking bookList = (Booking) session.createQuery("from Booking ORDER BY bookid DESC")
.setMaxResults(1).uniqueResult();
return bookList;
}
我尝试了在this link 中找到的代码,但它始终显示为“9”。如果最后一个值为“1”,那么它应该显示为 1,但它是 9。
所以我的问题是:“是否有任何查询可以获取休眠中列的最后一个值?”
【问题讨论】:
-
您按 bookindId 列的降序排列。根据屏幕截图,9 是那里的最高值。那么究竟是什么没有按您的预期工作?如果您想要最后一个条目,请不要使用 bookingId,而是按您的主键排序!
-
@911DidBush 即使我们使用主键然后值将显示为 20 但我需要 bookingID 的最后一个值。实际上要求就像“将记录添加到数据库中,但限制为 9。在 9 条记录之后,第 10 条记录应重新开始,bookingID 为 1”
-
我假设 Booking 是一个包含 id、bookingId 等的实体,对吧?所以
Booking booking = (Booking) session.createQuery("from Booking ORDER BY id DESC") .setMaxResults(1).uniqueResult(); return booking.getBookingId(); -
@FIFAoneterahertz,它是
ORDER BY的id而不是bookingid。 -
@911DidBush,考虑将您的评论作为答案 - OP 似乎不明白其中的区别!
标签: java mysql spring hibernate