Java 或标准-休眠
我有一个hibernate类:Java 或标准-休眠,java,hibernate,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( R
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();
这是无效代码。请尝试:
List students = sess.createCriteria(student.class)
.add( Restrictions.in("name", new String[] { "John", "Paul" } ) )
.list();
另外,我建议您使用QueryDSL而不是Criteria API。类似于以下内容:
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();
Criteria crit=session.createCriteria(Student.class);
标准名称=限制。eq(“名称”、“约翰”);
标准名称2=限制.eq(“名称”、“保罗”);
LogicalPression orExp=限制。或(名称,名称2);
标准添加(orExp);
列表结果=crit.List();
检查