【问题标题】:Hibernate Running native SQL Select [duplicate]Hibernate 运行本机 SQL 选择 [重复]
【发布时间】:2016-04-14 12:09:03
【问题描述】:

我正在尝试在休眠应用程序中运行一个简单的 SQL(native) 查询。

SELECT COUNT(*) from users

选择的答案可以保存为整数。 我怎样才能做到这一点而不必在 Hibernate 中创建模型类?

【问题讨论】:

    标签: java sql hibernate integer


    【解决方案1】:
    int count=0;    
    Resultset rs=Statement.ExecuteQuery("SELECT COUNT(*) as count from users");
        if(rs.next()){
         count=rs.getInt("count");
        }
    
    System.out.println(count);
    

    【讨论】:

      【解决方案2】:

      Hibernate 5.0.9.Final 会将该结果作为BigInteger 类型的对象给出。假设你有一个EntityManager,然后使用:

      BigInteger r = (BigInteger) em.createNativeQuery("select count(*) from user").getSingleResult();
      System.out.println(r);
      

      这是一个简单的问题,你应该可以在stackoverflow上轻松找到答案:

      hibernate native query, count [duplicate].

      How do we count rows using Hibernate?

      【讨论】:

        【解决方案3】:
        Resultset rs=Statement.ExecuteQuery("SELECT COUNT(*) as number from users");
        while(rs.next()){
         Long count =rs.getLong("number");
            }
        

        【讨论】:

        • 当您尝试从 rs 获取 long 但将其存储在 integer 时,这将产生错误。将 int count 更改为 long count
        • 是的,反正我写得很快,多亏了正确的;)
        猜你喜欢
        • 2013-01-12
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        • 2011-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-27
        相关资源
        最近更新 更多