Zuordnung einer SQL-Ansicht ohne Primärschlüssel zur JPA-Entität

8

In meiner Java-App möchte ich Informationen, die in meiner Oracle-Datenbank gespeichert sind, mit JPA abrufen. In meiner Datenbank habe ich eine Ansicht mit einer Reihe von Spalten, die ich von anderen Tabellen bekommen habe. Ich möchte diese Ansicht zuordnen. Meine Ansicht hat jedoch keinen Primärschlüssel , sodass ich keine JPA-Entität erstellen kann. Ich dachte über 2 Spalten als Fremdschlüssel .

Wie lässt sich das am besten umsetzen? Ich habe so viele unterschiedliche Ansätze gesehen, dass ich nicht entscheiden kann, welches für diesen Fall das Beste ist.

    
user2144555 25.11.2013, 20:16
quelle

2 Antworten

6

Eine Möglichkeit, dies zu lösen, besteht darin, einen zusammengesetzten Primärschlüssel zu verwenden, indem Sie einfach die @Id-Annotation zu den entsprechenden Feldern hinzufügen.

    
PepperBob 25.11.2013, 20:21
quelle
3

Es gibt keinen besten Ansatz. Da es sich um eine Ansicht handelt, werden Sie niemals Daten darin einfügen, was bedeutet, dass Sie einfach einen Primärschlüssel über einem der vorhandenen Felder definieren können. Sie könnten auch versuchen, dieses Feld mit insertable=false, updatable=false zu markieren.

AKTUALISIEREN

Sie wissen besser Ihre Daten, aber allgemein in einer Ansicht können Sie nicht garantieren, dass alle Datensätze eindeutig sind, weshalb Sie generell vermeiden sollten, direkt mit Entitäten zu arbeiten aus der sicht. Ich würde eher vorschlagen, mit einer Wrapper-Klasse zu arbeiten, etwas wie:

%Vor%     
Andrei I 25.11.2013 20:20
quelle

Tags und Links