Hibernate Criteria创建一个计数查询,而不会在查询旁边询问它

时间:2016-06-09 12:11:05

标签: java hibernate criteria hibernate-criteria

我在PostgreSQL DB上使用条件(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(条件查询)查看日志时,我看到2个查询 第一个:

我首先询问 NOT 的第一个查询是:

/* 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 ?

问题是计数查询因查询超时而失败。 第二个是完美的。

有没有办法防止从休眠到制作"这个计数查询?

0 个答案:

没有答案