JPA: Konvertieren nativer Abfrageergebnisse in POJO
In Ihrer Abfrage haben Sie die Notwendigkeit zum Ausdruck gebracht, die Ergebnisse einer nativen Abfrage in ein zu konvertieren Sammlung von POJO-Klassen mit fünf Feldern. Sie haben darüber nachgedacht, ob JPA eine direkte Möglichkeit hat, die Ergebnisse in eine Liste von POJO-Objekten umzuwandeln.
Benutzerdefinierte Objektzuordnung mithilfe von Reflection
Eine mögliche Lösung vor der Einführung von JPA 2.1 bestand darin, die Ergebnisse mithilfe von Reflektion manuell abzubilden. Dazu gehörte die Definition von Methoden zum Erstellen eines POJO-Konstruktors mit derselben Anzahl und Art von Feldern wie die nativen Abfrageergebnisse und die Zuordnung des von der Abfrage zurückgegebenen Tupel-Arrays zum Konstruktor.
Verwendung von @SqlResultSetMapping in JPA 2.1
JPA 2.1 hat die Annotation @SqlResultSetMapping eingeführt, die es Ihnen ermöglicht um eine Zuordnung für den Ergebnissatz in einer Entität oder einer XML-Datei zu erstellen. Diese Zuordnung definiert die Zielklasse und die Spalten im Ergebnissatz, die ihren Eigenschaften entsprechen. Mithilfe dieser Zuordnung können Sie ein Abfrageobjekt erstellen und den Namen der Zuordnung angeben, um die Ergebnisse direkt in eine Liste von POJO-Objekten umzuwandeln.
XML-Zuordnung
Wenn Sie Anmerkungen lieber aus Entitätsklassen heraushalten möchten, können Sie die Zuordnung in der Datei META-INF/orm.xml definieren. Dazu gehört das Erstellen eines benannten nativen Abfrageelements mit einem Ergebnismengenzuordnungsattribut und das Definieren des SQL-Ergebnismengenzuordnungselements mit dem Konstruktorergebnis, das die Zuordnung der Zielklasse und des Spaltennamens angibt.
Zugeordnete Entitäten (JPA 2.0)
Während JPA 2.0 die Zuordnung nativer Abfragen zu POJO nicht zulässt Klassen unterstützt es die Zuordnung zu Entitäten. Dies erfordert, dass das POJO als Entität mit Anmerkungen versehen und seine Eigenschaften den Datenbankspalten zugeordnet werden.
Fazit
Der Ansatz, den Sie für die Zuordnung nativer Abfrageergebnisse wählen POJO-Klassen hängen von der von Ihnen verwendeten JPA-Version und Ihrer Präferenz für Anmerkungen oder XML-Konfigurationen ab. Die vorgestellten Optionen bieten verschiedene Ebenen an Flexibilität und Komfort, sodass Sie die Option auswählen können, die den Anforderungen Ihres Projekts am besten entspricht.
Das obige ist der detaillierte Inhalt vonWie kann ich native Abfrageergebnisse in JPA in POJOs konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!