7 Stimmen

hibernate restrictions.in mit und, wie zu verwenden?

Ich habe eine Tabelle wie unten

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

Wie kann man eine Abfrage mit Restriction.in durchführen, indem man die folgenden AND-Anweisungen zu einer IN-Anweisung kombiniert?

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

11voto

Daff Punkte 42755

Ich denke, dies ist die Kriterienkombination, die Sie verwenden möchten (btw. es ist einfacher, mit der Hibernate-Entity-Bean-Definition anstelle der Tabellenstruktur zu helfen):

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

2voto

Vinit Jordan Punkte 173
List<EmployeeSurvey> employeeSurvey = getSession().createCriteria
(EmployeeSurvey.class).add(
    Restrictions.and
    (
        Restrictions.eq("survey_no", 1), 
        Restrictions.in("employee_name", new String[] {"test", "test1"})
    )).list();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X