Tôi vừa nâng cấp Hibernate từ 3.2.5 lên 4.2.0.CR1. Tôi đã sử dụng một cái gì đó giống như các phương pháp sau đây trong các lớp học DAO để xác định vị trí số hàng hiện tại trong Oracle 10g với phương pháp createSQLQuery()
.Hibernate.INTEGER không khả dụng, khi phiên bản Hibernate được nâng cấp lên 4.2.0.CR1
SELECT row_num
FROM (SELECT row_number()
OVER (
ORDER BY banner_id DESC) AS row_num,
banner_id
FROM banner_images
ORDER BY banner_id DESC)
WHERE banner_id = :id
@Override
@SuppressWarnings("unchecked")
public int getCurrentRow(String id, int rowsPerPage)
{
return (Integer) sessionFactory
.getCurrentSession()
.createSQLQuery("Above query")
.addScalar("row_num", Hibernate.INTEGER) //<------- ???
.setParameter("id", Long.parseLong(id))
.uniqueResult();
}
Phương pháp .addScalar("row_num", Hibernate.INTEGER)
như trong đoạn mã trên, đưa ra một lỗi thời gian biên dịch.
cannot find symbol
symbol: variable INTEGER
location: class Hibernate
Không có sẵn trong lớp org.hibernate.Hibernate
. IDE NetBeans tôi đang sử dụng là 7.2.1 không liệt kê một hằng số như vậy. Tìm kiếm của Google không thể đưa tôi đến giải pháp thực tế. Vì vậy, các thay thế trong phiên bản này của Hibernate (4.2.0.CR1) là gì?