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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese:
aktualisiert die Antwort
Einschränkungen.in(String,Object[]). Ich habe versucht mit "new Long[]{Fertigkeit.getId()}" und jetzt ist die Abfrage "skill1_.ID in (?) und skill1_.ID in (?)".gleiche Sache ,leeres Ergebnis
was meinst du mit "new Long[]{Fertigkeit.getId()}" ?
Einschränkungen.in() erfordert eine Sammlung von Objekten, die Sie als zweiten parameter also versuchte ich um eine Kollektion zu kreieren, die skill-id.
InformationsquelleAutor WeMakeSoftware
dem Ergebnis, das Sie bekommen wird erwartet. Sie sind mit
Restrictions.in
können SieCriterion
InformationsquelleAutor Null
Habe ich es geschafft, es zu lösen.jetzt funktioniert es.
InformationsquelleAutor maracili