如何在hibernate中为count(*)编写查询

时间:2013-06-29 18:57:39

标签: hibernate hql

我想在 Hibernate 中执行以下查询?

select count(*) from login where emailid='something' and password='something'

3 个答案:

答案 0 :(得分:63)

假设login表由LoginClass类映射,并带有emailidpassword个实例变量。然后你将执行类似的事情:

Query query = session.createQuery(
        "select count(*) from LoginClass login where login.emailid=:email and login.password=:password");
query.setString("email", "something");
query.setString("password", "password");
Long count = (Long)query.uniqueResult();

它应该在count中返回您要查找的结果。您只需要根据类和参数名称调整名称。

答案 1 :(得分:1)

结果返回 BigDecimal,您需要将其从 Bigdecimal (java.math.BigDecimal) 转换为 Long 以免出错,他的解决方案是:

Query query = session.createSQLQuery(
        "select count(*) from login where login.emailid=:email and login.password=:password");
query.setString("email", "something");
query.setString("password", "password");
Long count = ((BigDecimal) query.uniqueResult()).longValue();

答案 2 :(得分:-1)

其他解决方案可能是createSQLQuery(“ SQL STATEMENT”)(如果您不得不 祝你好运