Ich habe 3 Entitäten, wie Sie unten sehen können. Ich möchte eine Abfrage schreiben, die Produkte abruft. In dieser Abfrage ist der Parameter eine Liste von optionValues id.
Jetzt ist meine Frage, wie man diesen Entitäten beitritt?
Produkt:
%Vor%Attribut:
%Vor%optionValue:
%Vor%Ich habe eine Abfrage geschrieben, aber ich denke, dass mein Code keine gute Lösung ist.
%Vor% Die allgemeine Idee besteht darin, mit dem Erstellen von Kriterien von Objekten zu beginnen, die Sie zurückgeben möchten, und weiter zu reisen, indem Sie Kriterien hinzufügen, die verknüpft sind. Also fange ich mit Parent
class an, füge Qualifizierer hinzu und lande mit dem meisten verschachtelten Element, OptionValue
.
Code unten ist nicht getestet, aber Sie sollten die Idee bekommen:
%Vor% Eine noch einfachere Lösung wäre die Verwendung von CriteriaQuery
. Ich habe den folgenden Code nicht getestet, aber ich denke, es sollte richtig funktionieren. Es erfordert Hibernate 5, funktioniert aber auch mit einigen Änderungen in Hibernate 4:
Ich gehe davon aus, dass Sie auf das optionValueList
zugreifen können, seit Sie es in Ihrer Frage gepostet haben.
Für die Lösung mit EntityManager
gehe ich davon aus, dass Sie bereits eine instantiieren konnten.
Wenn Sie eine EntityManagerFactory
haben, ersetzen Sie die erste entityManager
mit der zweiten und entityManagerFactory.createEntityManager()
Tags und Links java hibernate hibernate-criteria jointable