2010-04-27 11 views
5

Benhibernate restrictions.in ile ve nasıl kullanılır?

id, employee_no, survey_no, name 
1 test   1   test_name 
2 test2   1   test_name2 
3 test3   1   test_name3 
4 test4   2   test_name4 

nasıl deyimi İÇİNDE aşağıda VE içine birleştirerek Restriction.in ile sorgulamak için aşağıdaki gibi tablo?

IN[ (if(survey_no==1) && employee_no== 'test') , 
     (if(survey_no==1) && employee_no== 'test2') , 
     ... 
    ] 

cevap

5

bu kullanmak istediğiniz kriterleri kombinasyon olduğunu düşünüyorum (btw yerine masa yapısının hazırda varlık fasulye tanımına yardımcı olmak için daha kolaydır.):

String[] employeeNames = { "test", "test2" }; 
List<Survey> surveys = getSession().createCriteria(Survey.class).add(
     Restrictions.and 
     (
      Restrictions.eq("surveyNumber", 1), 
      Restrictions.in("employeeName", employeeNames) 
     ) 
    ).list(); 
+3

Kısıtlamalar eklenir varsayılan olarak VE cümleleri olarak ölçütler. Bu durumda kod doğrudur, ancak iki kısıtlama doğrudan Restrictions.and ifadesinde iç içe yerleştirmek yerine doğrudan ölçütlere eklenirse daha basit olur. – Rachel

+0

Teşekkür ederim, bilmek güzel. Sanki gerçekte olması gerekenden daha karmaşık sorular sormuş gibi görünüyor. – Daff

İlgili konular