JPA Erzeugt ungefragt neue Spalten für IDs

Hubivan

Mitglied
Hallo Zusammen,

Ich habe folgendes Problem ich greife mittels eines Beans auf eine Datenbanktabelle zu.
Diese Tabelle besitzt aber keinerlei Keys, weder PKs noch FKs. (vermutlich weil eh immer nur genau ein Datensatz enthalten ist, Datenmodell ist nicht von mir)

Vor dem zugriff hat die Tabelle 4 Spalten:

Datum Von | Datum Bis | Spalte X | Spalte Y

Nach dem Zugriff hat die JPA eine Spalte hinzugefügt und das ganze sieht so aus

Datum Von | Datum Bis | Spalte X | Spalte Y | ID

zudem erstellt die JPA auch noch eine Sequence für die neue Spalte ID.

Ich möchte aber nicht, das die JPA hier eine neue Spalte hinzufügt, da dies das ganze Datenmodell kaputt macht. (ja ich weiß normalerweise sollte jede Tabelle eine ID oder zumindest einen anderen Key haben)

Kann man diesen "automatischen" Eingriff ins Datemodell irgendwie unterbinden, sodass keine Änderungen an der Tabelle erfolgen?
 
Wie hast du den Generator für die Id konfiguriert? Soweit ich weiß ist die ID Spalte in JPA Standard, da sie die einzige ist, die für alle Datenbanken funktioniert.

Ganz ohne ID kommst du allerdings nicht aus. Zur Not musst du dir halt alle Spalten zusammen als Compondkey definieren. Vermutlich geht dann allerdings die Performance schnell in die Knie.

Gruß
Ollie
 
Ganz ohne ID kommst du allerdings nicht aus.

Hab ich mir schon gedacht, aber irgenwie will das keiner hören.

Zur Not musst du dir halt alle Spalten zusammen als Compondkey definieren. Vermutlich geht dann allerdings die Performance schnell in die Knie.

Nun die Performence dürfte in diesem Fall nicht das Problem sein, da in besagter Tabelle genau ein Datensatz hinterlegt ist. Die Tabelle wird gewisserweiße als so ne art Config oder Properties file genutzt.

Was den CompondKey angeht, wird dieser dann nicht auch in der Datenbank hinterlegt? Oder beinflusst sonst wie die Datenbank bzw das Datenmodell. Daran soll sich nämlich nichts ändern... (Politik)
 
Ganz ohne einen Identifikator geht es baer meiner Meinung nach schlecht. Irgendwie muss ein Datensatz identifiziert werden.. Ist den wenigstens eine Spalten unique und könnte notfalls als natural key verwendet werden?
 
Wie gesagt, die Tabelle hat keine Spalte die Unique ist, keinen PK etc.
Rein garnichsts.

Es ist einfach nur eine Tabelle mit 5 Spalten. Die immer genau einen einzigen Datensatz enthält. Das Datenmodell ist jetzt so ca 10 Jahre alt. So wie es aufgebaut ist, ist es nach heutigen Gesichtspunkten eigentlich eine Katastrophe.
 
Wo ist denn das Problem? Dann bilden halt alle Spalten zusammen einen "Primärschlüssel". Ich weiß zwar nicht, welche DB eine Tabelle ohne echten Primärschlüssel zulässt, aber so kann man es zumindest abbilden.

Gruß
Ollie
 

Neue Beiträge

Zurück