java - Hibernate.INTEGER不可用,当Hibernate版本升级到4.2.0.CR1时

标签 java oracle hibernate compiler-errors

我刚刚将 Hibernate 从 3.2.5 升级到 4.2.0.CR1 .我在 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();
}

上面代码片段中显示的 .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) 有什么替代方案呢?

最佳答案

此 Hinernate.Integer 自 3.6.x 起已弃用

您应该改用 IntegerType.INSTANCE

关于java - Hibernate.INTEGER不可用,当Hibernate版本升级到4.2.0.CR1时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14881775/

相关文章:

java - 由于边界原因,maven 拒绝编译泛型类,即使在转换类之后也是如此

java - 奇怪的 Java 乘法递归与 StackOverFlow

java - get 和 set 方法有什么意义

java - sqlj 运行时错误

java - ResultSet 元数据返回时间戳而不是日期 Oracle JDBC

java - 在 Android 应用程序中关闭 ByteArrayOutputStream

oracle - 是否可以在我的 JSP Scriptlet 代码中使用 Oracle PL/SQL 过程?

java - org.bsc.maven.maven-processor-plugin 不适用于 java 1.7 及更高版本

hibernate - 是否有注释在jpa2中定义多列索引

image - 如何使用spring mvc显示mysql数据库中的图像