I have just upgraded Hibernate from 3.2.5 to 4.2.0.CR1. I was using something like the following methods in DAO classes to locate the current row number in Oracle 10g with the createSQLQuery()
method.
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();
}
The .addScalar("row_num", Hibernate.INTEGER)
method as shown in the above code snippet, issues a compile-time error.
cannot find symbol
symbol: variable INTEGER
location: class Hibernate
It is not available in the org.hibernate.Hibernate
class. The NetBeans IDE I'm using is 7.2.1 is not listing such a constant. Google search couldn't lead me to the actual solution. So what is the alternative in this version of Hibernate (4.2.0.CR1)?
This Hinernate.Integer is deprecated since 3.6.x
You should use IntegerType.INSTANCE
instead.
If you are using an older version of Hibernate, but don't want to use a deprecated value while on 3.5.x or below, you'll have to use new IntegerType()
because IntegerType.INSTANCE
doesn't exist before 3.6.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With