gpt4 book ai didi

java - 如何计算 Hibernate 查询语言中的行数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:07 25 4
gpt4 key购买 nike

我试图只获取返回的行数,而不是表中的所有结果。

我看到可以这样做:

( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue()

但是当试图以整数格式存储这个查询时(它说不能从 Query to Integer 转换)

我正在使用动态查询,其中的值将在查询下方提及,如下所示

theQuery = "select count(*) from THM as thm " + 
"join thm.TMC as tmc " +
"join tmc.TIMCC as timcc " +
"where thm.Qid = :Qid and thm.Cv = :Cv and timcc.Did = :Did and timcc.Cv= :Cv";

Query query = session.createQuery(theQuery);
query.setInteger("Qid", Integer.parseInt(Qid));
query.setInteger("Did", Did);
query.setInteger("Cv",cV);

现在,如何在不使用 list.size 而是直接从查询中获取通过在变量中使用 Hibernate 查询返回的所有行的计数?

最佳答案

你试过 query.uniqueResult(); ?由于您的 Select count(*) 只会给您一个数字,因此您应该能够像这样检索它 int count = (Integer)query.uniqueResult();

要根据条件进行计数,您可以这样做:

Criteria criteria = currentSession().createCriteria(type);
criteria.setProjection(Projections.rowCount());
criteria.uniqueResult();

我现在正在使用 Criteria,所以我确信它有效。我在这里的网站上看到了 uniqueResult() 解决方案:http://www.jroller.com/RickHigh/entry/hibernate_pagination_jsf_datagrid_prototype1

关于java - 如何计算 Hibernate 查询语言中的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8679576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com