Hibernate を 3.2.5 から4.2.0.CR1にアップグレードしました。メソッドを使用してOracle 10gの現在の行番号を見つけるために、DAOクラスで次のようなメソッドを使用していました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 で、そのような定数はリストされていません。Google 検索では、実際の解決策にたどり着くことができませんでした。では、このバージョンの Hibernate (4.2.0.CR1) の代替手段は何ですか?