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

kqhtkvqz  于 2022-12-27  发布在  其他
关注(0)|答案(3)|浏览(148)

我有下面的代码在我的刀

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(*),它总是返回单个值。

mepcadol

mepcadol1#

尝试使用uniqueResult()而不是list()。

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

根据您当前的DB,计数可能返回Integer或Long,因此最安全的情况是Number。
还有:

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

cngwdvgl2#

您的代码是完美的,在您的查询结束时添加以下内容

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

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

Reference link

vulvrdjw

vulvrdjw3#

有点晚了,但我还是会回信的。
在我的例子中,当我使用'select count(a)from TaskAttachment'时,我得到了3行,
仅仅因为我有另外两个名为TaskPostAttachment域对象和
TaskDiscussionAttachment,然后这两个域对象都扩展了我的
由于某种原因,
因此我创建了另一个名为RootAttachment域对象,
然后这三个TaskAttachment对象都扩展了RootAttachment,
那么问题就解决了。
对不起,我英语不好。

相关问题