我刚刚将 Hibernate 从 3.2.5 升级到4.2.0.CR1。我在 DAO 类中使用类似以下方法的方法来定位 Oracle 10g 中的当前行号createSQLQuery()
。
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();
}
上面代码片段中显示的.addScalar("row_num", Hibernate.INTEGER)
方法会发出编译时错误。
cannot find symbol
symbol: variable INTEGER
location: class Hibernate
org.hibernate.Hibernate
它在课堂上不可用。我使用的 NetBeans IDE 是 7.2.1 没有列出这样的常量。谷歌搜索无法引导我找到实际的解决方案。那么这个版本的Hibernate(4.2.0.CR1)有什么替代方案呢?