Hibernate-Kriterien treten bei Tabellenproblemen auf

9

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%     
ali 27.04.2017, 17:46
quelle

2 Antworten

1

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%     
mindas 02.05.2017 16:03
quelle
1

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:

%Vor%

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.

%Vor%

Wenn Sie eine EntityManagerFactory haben, ersetzen Sie die erste entityManager mit der zweiten und entityManagerFactory.createEntityManager()

    
XtremeBaumer 05.05.2017 12:38
quelle