或标准 - Hibernate

时间:2012-01-17 10:59:15

标签: java hibernate

我有一个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();

这是非工作代码。

2 个答案:

答案 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();