[英]Hibernate.INTEGER is unavailable, when the Hibernate version is upgraded to 4.2.0.CR1
I have just upgraded Hibernate from 3.2.5 to 4.2.0.CR1 . 我刚刚将Hibernate从3.2.5升级到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. 我在DAO类中使用类似以下方法的东西,使用
createSQLQuery()
方法在Oracle 10g中找到当前行号。
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. 上面的代码片段中显示的
.addScalar("row_num", Hibernate.INTEGER)
方法发出编译时错误。
cannot find symbol
symbol: variable INTEGER
location: class Hibernate
It is not available in the org.hibernate.Hibernate
class. 它在
org.hibernate.Hibernate
类中不可用。 The NetBeans IDE I'm using is 7.2.1 is not listing such a constant. 我正在使用的NetBeans IDE是7.2.1未列出这样的常量。 Google search couldn't lead me to the actual solution.
谷歌搜索无法引导我找到实际的解决方案。 So what is the alternative in this version of Hibernate (4.2.0.CR1)?
那么在这个版本的Hibernate(4.2.0.CR1)中有什么替代方案呢?
This Hinernate.Integer is deprecated since 3.6.x 从3.6.x开始,不推荐使用此Hinernate.Integer
You should use IntegerType.INSTANCE
instead. 您应该使用
IntegerType.INSTANCE
。
如果您使用的是旧版本的Hibernate,但是在3.5.x或更低版本时不想使用已弃用的值,则必须使用new IntegerType()
因为在3.6之前不存在IntegerType.INSTANCE
。
Do: 做:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.