Join unabhängigen Organisationen, die mit der jpa api-Kriterien
Zwei Datenbank-Tabellen eine Fremdschlüsselbeziehung.
Sie zugeordnet sind, um zwei Entitäten Eine und B von JPA, sondern die join-Spalten manuell entfernt von den Entitäten, also in JPA Welt Klassen Eine und B sind nicht verwandt, und Sie kann nicht navigieren von der einen zur anderen durch ein Feld/property.
Anhand von Kriterien api ist es möglich eine Abfrage erstellen, die die zwei Tabellen verknüpft ?
Alle Beispiele, die ich fand im internet verwendet die join-Spalte, um das Ziel zu erreichen, aber, wie oben erwähnt, wurde entfernt aus dem code, weil die meisten der Zeit ich bin nicht daran interessiert, die Beziehung zwischen Eine und B und ich habe Angst über den möglichen Aufwand.
InformationsquelleAutor Filippo | 2013-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste: Foreign key-Beziehung sind nicht nur für die Navigation. Sie dienen in Erster Linie, um sicherzustellen, dass keine unechte Werte sind eingeführt in die Beziehung. Sie können auch mithelfen, die Datenbank für Abfrage-Optimierung. Ich würde Ihnen raten, zu überdenken, dass.
Sowieso, für das erstellen einer Abfrage, verwendet mehrere unterschiedliche Einheiten, die Sie benötigen, um Sie als
from
(root
) Entitäten (wie in SQL oder JPQL)CROSS JOIN
) zwischen den Entitäten. Mit derWHERE
Zustand, dieser verhält sich wie einINNER JOIN
(einschließlich der gleichen Leistung wie bereits hier).Ich verstehe das nicht beantworten. Wo kommt
trainingLink
kommen? Ich würde nicht wollen, etwas wiecriteriaBuilder.equal(rootLink.get(link_.linkAttribute), rootTraining.get(training_.linkAttribute
(die nicht mit Kriterien-api)?InformationsquelleAutor SJuan76
Join auf unterschiedliche Einheiten fallen nicht unter die Letzte JPA spec (2.1)
Jedoch Hibernate 5.1.0+ und EclipseLink 2.4.0+ die Unterstützung von ad-hoc-Verknüpfungen.
http://blog.anthavio.net/2016/03/join-unrelated-entities-in-jpa.html
Andere Möglichkeit ist die native query
http://www.oracle.com/technetwork/articles/vasiliev-jpql-087123.html
InformationsquelleAutor anthavio