Java Hibernate条件创建计数查询,而不在查询旁边询问

Java Hibernate条件创建计数查询,而不在查询旁边询问,java,hibernate,criteria,hibernate-criteria,Java,Hibernate,Criteria,Hibernate Criteria,我在PostgreSQL数据库上使用条件(java)创建了一个查询 这是我的代码片段: protected Criteria createEntityCriteria() { return createEntityCriteria(getSession()); } protected Criteria createEntityCriteria(Session session) { return session.createCriteria(getEntityClass(), "

我在PostgreSQL数据库上使用条件(java)创建了一个查询

这是我的代码片段:

protected Criteria createEntityCriteria() {
    return createEntityCriteria(getSession());
}

protected Criteria createEntityCriteria(Session session) {
    return session.createCriteria(getEntityClass(), "main").setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
}


Criteria crit = createEntityCriteria();
crit.setFirstResult((pagingInfo.getPageNumber() - 1) * pagingInfo.getPageSize());
 crit.setMaxResults(pagingInfo.getPageSize());
现在,当我从hibernate(条件查询)查看日志时,我看到了两个查询 第一个:

我没有问的第一个问题是:

/* criteria query */ select
    count(*) as y0_ 
from   some_Table this
left outer join  moreTable
on ......
第二个是我要求的:

Hibernate: 
    /* criteria query */ select   col1 y0_,
    col2 y1_,
        ......
    from .....
left join ....
on ....
order by
    y41_ desc limit ? offset ?
问题是计数查询由于查询超时而失败。 第二个很好用


有没有办法防止休眠状态导致“伪造”此计数查询?

看起来很可疑。你能发布所有执行的代码直到
crit.list()
?看起来很可疑。您能发布所有执行的代码直到
crit.list()