„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie generiere ich Datenbanksequenzen für Nicht-ID-Spalten in Hibernate JPA?

Wie generiere ich Datenbanksequenzen für Nicht-ID-Spalten in Hibernate JPA?

Gepostet am 2025-04-17
Durchsuche:187

How Can I Generate Database Sequences for Non-ID Columns in Hibernate JPA?

Verwenden einer Datenbanksequenz für Nicht-ID-Spalten in Hibernate jpa

Wenn Sie mit Hibernate als JPA-Anbieter arbeiten, müssen Sie auf Spalte, die nicht Teil des Identifizierers sind. Leider ist die @GeneratedValue-Annotation, die häufig zur automatischen Inkrementierung der Primärschlüssel verwendet wird, in diesem Szenario nicht anwendbar. Die @GeneratedValue -Annotation wird ausschließlich zur Verwaltung der Primärschlüsselerzeugung verwendet. Stattdessen werden Datenbank-generierte Werte erwartet.

Um diese Einschränkung zu überwinden, sollten Sie eine separate Entität mit einer generierten Kennung erstellen, die als "Ersatzschlüsseleinheit" bezeichnet wird. Die fragliche Nicht-ID-Spalte kann dann dieser Ersatzentität unter Verwendung einer Onetoone-Beziehung zugeordnet werden. @Juristische Person öffentliche Klassen Leihmutterschaft { @Ausweis @GeneratedValue (...) private lange Zahl; } // Haupteinheit @Juristische Person öffentliche Klasse MyEntity { @Ausweis private lange Ausweis; @Onetoone (...) private Leihmutterschaft myval; }

Mit diesem Ansatz wird der Wert für die MyVal -Eigenschaft in der Datenbank nach Erstellung einer neuen MyEntity -Instanz generiert. Mit diesem Arbeitsplatz können Sie die Datenbank-generierte Wertverarbeitungsfunktionen von Hibernate für Nicht-ID-Spalten verwenden.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3