JPA nativen Abfrage die Einheit, die mit Feldern aus mehreren Tabellen
Ich habe eine Abfrage in JPA NativeSql, wo ich die "verbindungen" der Tabellen und joins. Ich habe eine Einheit, die mit der Abfrage Felder aus mehreren Tabellen. So kann ich nicht tun, "@Column" "@ Tabelle" wie gewohnt mit JPA.
Wie konnte ich die angegebenen Werte der Abfrage zu meiner Person?
InformationsquelleAutor Giovane | 2013-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Zuordnung der Spalten zurückgegeben, die durch Ihre native SQL-Abfrage, um Ihre Einheit durch die Verwendung
@SqlResultSetMapping
.Beispiel:
Weitere Beispiele finden Sie hier.
InformationsquelleAutor Pieter
Können Sie die überladene EntityManager#createNativeQuery(sql,resultClass) Methode für diese.
InformationsquelleAutor SudoRahul
IMHO mit DAOs mit JPA ist keine gute Idee. Aber haben Sie einen Blick auf die Kriterien API. Bauen Sie solche Abfragen, wie Sie Sie beschrieben mit der CriteriaBuilder.
Hoppla...gar nicht gelesen. Verwenden Sie EclipseLink? EclipseLink weiß Gewerkschaften.
InformationsquelleAutor VWeber
JPA
nativeSQL
ist die gleiche wie generischeSQL
. Sie tun kannunion
Betrieb gleiche wieSQL
Abfrage machen. Aber, wenn Sie wollen, es zu tun mitJPQL
, als Sie verwenden müssenEclipseLink
, dennJPQL
vonJPA
nicht die Unterstützung von Union-operation.InformationsquelleAutor Masudul
Warum nicht der NATIVE SQL-Anweisungen in einem view? Dann erstellen Sie einfach eine Entität zugeordnet, die anzeigen, wie jede normale Person hätte zugeordnet werden Tabelle. Der einzige Unterschied ist, dass Sie nicht einfügen, aktualisieren oder löschen von Entitäten auf der Grundlage der Ansicht.
Stellen Sie die Ansicht in der Datenbank
Ich habe ein Unternehmen mit der annotation "@ entity" und die Variablen, die im Zusammenhang mit der Abfrage. Also Tat ich, "Query query = manager.createNativeQuery (sql.toString (), Cep.class);". Jetzt den fehlenden Teil der Einstellung-pair-Mädchen aminha entity-Werte zurück. Ich wünschte, es wäre so: "List Ergebnisse = <Kep - > query.getResultList ();"
InformationsquelleAutor Kevin Bowersox