Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 如何实现子查询.rowCount(DetachedCriteria dc)_Hibernate_Subquery_Detachedcriteria - Fatal编程技术网

Hibernate 如何实现子查询.rowCount(DetachedCriteria dc)

Hibernate 如何实现子查询.rowCount(DetachedCriteria dc),hibernate,subquery,detachedcriteria,Hibernate,Subquery,Detachedcriteria,当DetachedCrieria具有投影时,如何获取DetachedCriteria结果集的行数?对于HQL: 从“选择名称”中选择“计数*”,按名称从“分数组”中选择“sumgrade” 对于hibernate,如何实现Subqueries.rowCountDetachedCriteria dc?谢谢。如果您只需要计数,为什么不直接执行呢 select count(name) from score group by name 我也遇到了同样的问题……我提出了以下解决方案,并且效果良好: my

当DetachedCrieria具有投影时,如何获取DetachedCriteria结果集的行数?对于HQL:

从“选择名称”中选择“计数*”,按名称从“分数组”中选择“sumgrade”


对于hibernate,如何实现Subqueries.rowCountDetachedCriteria dc?谢谢。

如果您只需要计数,为什么不直接执行呢

select count(name) from score group by name

我也遇到了同样的问题……我提出了以下解决方案,并且效果良好:

myCriteria.setProjection(Projections.sqlProjection("count(*) as count from ( select distinct id , {alias}.enteredDate  ", new String[] { "count" }, new Type[] { StandardBasicTypes.LONG }));

// this is needed to close the parentheses opened in the Projection
myCriteria.add(Restrictions.sqlRestriction(" 1=1)"));

不,这是一般要求。我们有一个独立的标准。如何获取查询结果的大小?执行它并查看返回的数字或结果?detachedCriteria.getExecutableCriteriasession.list.size如果结果集有数百万个实体,它会检索所有实体,然后计算其大小吗?如果它依赖于数据库,那么mysql呢?谢谢。如果您不想检索实体,可以尝试以下操作:detachedCriteria.getExecutableCriteriasession.setProjectionProjections.rowCount.uniqueResult。它接受当前条件并使用行计数覆盖select子句。如果detachedCriteria没有投影,则此操作有效。但是,如果它已经有了预测,它将不会起作用。ThanksIt最好在Hibernate中扩展类并实现它。也就是说,将select count*添加到DetachedCriteria的生成SQL中。但我还没有弄明白怎么做。谢谢分享。