Hibernate Composite-ID mit Autogenerated Value

Reggie

Aktives Mitglied
Tach!

Also dieses Thema wurde schon Lang und Breit in allen möglichen Foren diskutiert. Aber nirgendwo habe ich eine anständige Lösung gefunden.

Ich versuche für eine Webapplication einen Adressstamm für mehrere Firmen in einer Tabelle zu erstellen.
Deswegen brauche ich eine Composite ID (MandantNr,AdressNr) und möchte eigentlich für jede Firma fortlaufende Adressnummern.

Das Problem: hibernate bietet keine Autogenerated Values in Embedded-ID's. Ich kann mir leider keine performante Application vorstellen wo ich vor jedem Insert erst noch die Datenbank fragen muss "Wie ist den die höchste AdressNr des aktuellen Mandanten?" und erst dann den Insert zu tätigen und evt hat zwischenzeitlich dann schon jemand diese Id weggeschnappt im schlimmsten Fall.

Sieht jemand noch eine andere Lösung?

@A0027301: Jo habs gleich nachher gesehn. Danke. Hab den Thread komplett geändert.
 
Zuletzt bearbeitet:
Weiss ja nicht was schon diskutiert wurde. Mal paar Anreißer:

- Die ID in Hibernate dient zur Identifikation des jeweiligen Objektes
- Daten der Gschäftslogik (hier Composite ID [was immer das ist?]) sollten nicht Grundlage für Verwaltungsdaten der DB sein -> ID
- Warum muss hier die ID eine "aufsteigende Nummer" sein? Wahrscheinlich lässt sich das einfach mit einer UUID lösen, die vergeben wird (im Konstruktor). Diese ist dann das Verbindungsglied zwischen den Daten und hat mit einer Hibernate-ID nichts zu tun
 
Naja aber die Id ist ja immer der primary Key der Datenbank. Composite-ID ist ein primary Key bestehend aus 2 oder mehr Columns, worin hibernate keine autogenerated Values erlaubt.

Aber ich glaub ich muss das komplette Datenbank Schema nochmals überdenken.

Ich habe grundsätzlich das Problem dass ich alle Daten für mehrere Firmen bereitstellen muss, mein erster gedanke war die Tables pro Mandant zu machen aber auch da spielt hibernate nicht mit, ausser ich mache für jeden Mandant eine Klasse, was nicht geht da es n Mandanten geben kann.

Falls irgendwer noch Gedankensanstösse zu obiger Problematik hat, würde ich sie gerne hören.
 

Zurück
Oben