HQL为count(*)返回多个结果?

时间:2014-05-26 09:36:19

标签: java hibernate hql

我的代码中有以下代码

String query = SELECT COUNT(*)  FROM CustomerData ;

Query query = session.createQuery(query);
List test = query.list();

it return list size as 2 . It contains the following value [1,0]

如果不可能,它返回2行怎么样,因为我在select子句中总是使用COUNT(*) 返回单个值。 hibernate在这里做点什么吗?

2 个答案:

答案 0 :(得分:0)

尝试使用uniqueResult()代替list()。

Number count = (Number) query.uniqueResult();

根据您当前的数据库,计数可能会返回整数或长整数,因此最安全的情况是数字。

此外:

String query = SELECT COUNT(cd)  FROM CustomerData  cd WHERE cd.custId = :custId  AND cd.deptId = :deptId

答案 1 :(得分:0)

您的代码非常完美,在查询结束时只需添加此

return ((Integer)test.get(0)).intValue();

OR

Integer result = ((Integer) test.get(0)).intValue();

Reference link