Hibernateを3.2.5から4.2.0.CR1にアップグレードしました。私はcreateSQLQuery()
メソッドでOracle 10gの現在の行番号を見つけるために、DAOクラスの次のメソッドのようなものを使用していました。Hibernate.INTEGERは、Hibernateのバージョンが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();
}
上記のコード・スニペットに示すように、.addScalar("row_num", Hibernate.INTEGER)
方法は、コンパイル時エラーを発行します。
cannot find symbol
symbol: variable INTEGER
location: class Hibernate
org.hibernate.Hibernate
クラスでは使用できません。 7.2.1で使用しているNetBeans IDEは、このような定数をリストしていません。 Googleの検索では私を実際のソリューションに導くことはできませんでした。では、このバージョンのHibernate(4.2.0.CR1)の代替案は何ですか?