Hibernate Criteria-query-Sammlungen enthält bestimmte Elemente

Ich habe einige Probleme mit Criteria. Ich habe eine Job - Klasse, die enthält eine Reihe von Skills.

Das problem kommt, wenn ich filtern möchten, die Arbeitsplätze, die 2 Fähigkeiten, zum Beispiel, die alle Aufträge enthält, die skill mit der id 1 und 3.

Nun habe ich dieses:

for (Skill skill : job.getSkills()) {
    ids.add(skill.getId());
}

criteria.createAlias("skills", "skill");
criteria.add(Restrictions.in("skill.id", ids));

aber es gibt mir Arbeitsplätze, die Fähigkeit 1 oder 3, nicht nur diejenigen, die mit beiden Fähigkeiten.
Wie kann ich dies tun?

UPDATE:

criteria.createAlias("Job.skills", "skill");    
Conjunction and = Restrictions.conjunction();   

for (Skill skill : job.getSkills()) {
    and.add(Restrictions.eq("skill.id", skill.getId()));
}
criteria.add(and);

Ich hab das versucht, aber sql ist and (skill1_.ID=? and skill1_.ID=?) keine Ergebnisse

Bitte post Hibernate-version.

InformationsquelleAutor maracili | 2015-01-05

Schreibe einen Kommentar