2012-01-17 9 views
2

を休止:私はとても基本的に私は名前=「ジョン」OR名前=「ポール」、レコードをフェッチする必要がある要件を持っているそれとも基準 - 私はHibernateのクラスを持っている

class student{ 
string name; 
int roll; 
} 

レコードをフェッチしながら、 johnやpaulのような名前のレコードをすべて削除しようとしています。私は同じことをすることができません。ご案内ください。

List students = sess.createCriteria(student.class) 
    .add(Restrictions.eq("name", "John")) 
    .add(Restrictions.eq("name", "Paul"))) 
    .list(); 

これは動作しないコードです。

答えて

4

試してみてください。

List students = sess.createCriteria(student.class) 
    .add(Restrictions.in("name", new String[] { "John", "Paul" })) 
    .list(); 

PS。 QueryDSLをCriteria APIよりも使用することをお勧めします。このような

+0

それをやったおかげでピーター...今querydsl – Will

+1

チェック[クライテリアAPI VS QueryDSL]をチェック(http://blog.mysema.com/2010/04/querydsl- as-alternative-to-jpa-2.html) –

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(); 
関連する問題