如何使用HQL(Hibernate查询语言)获取列的最后一个值

时间:2017-02-23 13:33:08

标签: java mysql spring hibernate

enter image description here

如图所示,我需要在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。

所以我的问题是:"是否有任何查询要在hibernate中获取列的最后一个值?"

2 个答案:

答案 0 :(得分:1)

数据库表本身没有订单。所以没有直接的方法来查询最后一个条目。

但是由于你的表使用自动增量主键id,你可以通过按降序排列结果来获取最后插入的条目并选择第一个结果

Booking booking =  (Booking) session.createQuery("from Booking ORDER BY id DESC")
            .setMaxResults(1).uniqueResult();

这将为您提供最高id的预订,现在您只需选择该条目的bookingId

  return booking.getBookingId();

答案 1 :(得分:0)

试试这个:

Booking bookList =  (Booking) session.createQuery("from Booking ORDER BY bookid DESC")
    .setMaxResults(1).getSingleResult();