如何从查询中 return int?

How to return int from query?

我的 dao 实现中有这个方法,我试图从查询中 return int 并将其放入 roomNumber int 变量中,但我不确定它是否是正确的语法...并且可能还有其他错误。在调试模式下,我看到 int roomNumber 字段没有任何值,当我跨过它时它的值为 0。

@Override
    public int getRoomNumber(int bookingId) {
        Session session = sessionFactory.getCurrentSession();

        Query query = session.createQuery("select room.roomId from Booking where bookingId=:bookingId");

        query.setParameter("bookingId", bookingId);

        int roomNumber = query.getFirstResult();

        return roomNumber;
    }

在数据库中预订 table:

对于查询我也试过这个:

select room_room_id from Booking where bookingId=:bookingId

为了这些目的,有方法 uniqueResult():

int roomNumber = ((Number)query.uniqueResult()).intValue();

编辑:如果您使用休眠版本 > 5.2.2,您可能需要将其更改为方法 getSingleResult():