此方法:
public List<User> exampleForSO(int size, int page, boolean name, boolean email) {
Criteria criteria = getSession().getCurrentSession().createCriteria(User.class);
if (name) {
criteria.add(Restrictions.isNotEmpty("name"));
}
if (email) {
criteria.add(Restrictions.isNotEmpty("email"));
}
criteria.setMaxResults(size);
criteria.setFirstResult(page);
List<User> users = criteria.list();
return users;
}
生成以下SQL:
Hibernate: select this_.name as y0_, this_.id as y1_ from users this_ where this_.id is not null limit ? offset ?
我怎样才能实现此查询?
Hibernate: select this_.name as y0_, this_.id as y1_, COUNT(*) OVER() as overallCount from users this_ where this_.id is not null limit ? offset ?
基本上我想在查询中添加这一小行:
COUNT(*) OVER() as overallCount
有什么建议吗?
这可以用DetachedCriteria解决吗?
我尝试过:
创建一个DetachedCriteria并将其作为子查询添加到实际的Criteria查询中,这不是一个选项,我不想要子查询。
生成RawSQL字符串并尝试将其注入查询,但没有成功。
答案 0 :(得分:0)
以防有人试图达到同样目的。
我就这样做了:
我在我的User类中创建了一个字段,如下所示:
createText
的更多信息