如何从查询中 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()
:
我的 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()
: