休眠是否支持count(*)over()

use*_*860 7 java sql hibernate window-functions

我试图阻止必须为count创建一个单独的查询,为实际查询创建一个查询.我发现是SesssionImpl ::的createQuery花费大量的时间进行复杂的查询,并结合数和主查询然后我就可以消除一个电话的createQuery.

在SQL中,我可以做类似的事情

select count(*) over(), col_A, col_B 
from TABLE_XX 
where col_C > 1000
Run Code Online (Sandbox Code Playgroud)

这可以在休眠中实现吗?

(我试图避免使用本机sql并坚持使用HQL和分离标准.使用本机SQL会破坏使用hibernate的目的.我的系统必须同时支持Oracle和Sybase)

Vij*_*pta 1

您可以将其用于:-

return (Number) session.createCriteria("Book").setProjection(Projections.rowCount()).uniqueResult();
Run Code Online (Sandbox Code Playgroud)