使用某些条件休眠计数行
假设我有一个表格Person,我想计算所有那些“出生日期”不为空并且他们是学生的人。假设我有两列:
birthDate Date (can be null)
isStudent boolean (default: false)
我如何使用休眠来做到这一点。?
假设我有一个表格Person,我想计算所有那些“出生日期”不为空并且他们是学生的人。假设我有两列:
birthDate Date (can be null)
isStudent boolean (default: false)
我如何使用休眠来做到这一点。?
Criteria crit = session.createCriteria(Person.class);
crit.add( Restrictions.isNotNull("birthDate"));
crit.add( Restrictions.eq("isStudent", true));
crit.setProjection(Projections.rowCount());
Integer count = (Integer)crit.uniqueResult();
Criteria crit = session.createCriteria(Person.class);
crit.add( Restrictions.isNotNull("birthDate"));
crit.add( Restrictions.eq("isStudent", true));
List<Person> students = crit.list();
Integer count = students.size();
或者,如果只需要一个计数值,并且没有返回任何列表:
Criteria crit = session.createCriteria(Person.class);
crit.setProjection(Projections.rowCount());
crit.add( Restrictions.isNotNull("birthDate"));
crit.add( Restrictions.eq("isStudent", true));
return (Long) crit.uniqueResult();