我在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 ?
问题是计数查询因查询超时而失败。 第二个是完美的。
有没有办法防止从休眠到制作"这个计数查询?