如何从查询中返回int?

时间:2017-02-11 13:32:07

标签: java spring-mvc hql

我在我的dao实现中有这个方法,我试图从查询返回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;
    }

db中的预订表:

enter image description here

对于我也尝试过的查询:

select room_room_id from Booking where bookingId=:bookingId

1 个答案:

答案 0 :(得分:2)

出于这些目的,方法uniqueResult()

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

编辑:如果你使用hibernate版本> 5.2.2您可能希望将此更改为方法getSingleResult()

Hibernate UniqueResult Deprecated