我有一个hibernate类:
class student{
string name;
int roll;
}
在获取记录时我有一个要求,我需要获取其中name =“john”或name =“paul”的记录,所以基本上我试图找到所有名字为john或paul的记录。我不能这样做。请指导。
List students = sess.createCriteria(student.class)
.add( Restrictions.eq("name", "John") )
.add( Restrictions.eq("name", "Paul")) )
.list();
这是非工作代码。
答案 0 :(得分:4)
尝试:
List students = sess.createCriteria(student.class)
.add( Restrictions.in("name", new String[] { "John", "Paul" } ) )
.list();
PS。我建议你使用QueryDSL而不是Criteria API。
答案 1 :(得分:1)
这样的事情:
Criteria crit = session.createCriteria(Student.class);
Criterion name = Restrictions.eq("name", "John") ;
Criterion name2 = Restrictions.eq("name", "Paul"));
LogicalExpression orExp = Restrictions.or(name,name2);
crit.add(orExp);
List<Student> results = crit.list();