Java Hibernate条件创建计数查询,而不在查询旁边询问
我在PostgreSQL数据库上使用条件(java)创建了一个查询 这是我的代码片段: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(), "
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()
?