Heim > Java > javaLernprogramm > Hauptteil

Wie implementiert man zusammengesetzte Primärschlüssel für versionierte Dateneinträge in JPA?

Susan Sarandon
Freigeben: 2024-10-29 07:36:02
Original
415 Leute haben es durchsucht

How to Implement Composite Primary Keys for Versioned Data Entries in JPA?

Zusammengesetzte Primärschlüssel in JPA erstellen und verarbeiten

Szenario:

Stellen Sie sich ein Szenario vor, in dem Sie mehrere Versionen speichern müssen desselben Dateneintrags, dargestellt durch die Spalten „id“ und „Version“. Ziel ist es, eine Entität zu erstellen, die Einträge mit unterschiedlichen Versionen duplizieren kann.

Entitätsdefinition:

Um eine Entität mit einem zusammengesetzten Primärschlüssel zu definieren, können Sie die verwenden Folgender Ansatz:

  1. Eingebettete Klasse: Erstellen Sie eine eingebettete Klasse, die die Schlüsselfelder enthält. Diese Klasse wird als EmbeddedId in der Entität verwendet.
<code class="java">@Embeddable
public class MyKey implements Serializable {

    @Column(name = "Id", nullable = false)
    private int id;

    @Column(name = "Version", nullable = false)
    private int version;

    // Getters and setters
}</code>
Nach dem Login kopieren
  1. Entitätsklasse: Die Entitätsklasse hat einen Verweis auf die eingebettete Klasse als primäre Klasse Schlüssel.
<code class="java">@Entity
public class YourEntity {

    @EmbeddedId
    private MyKey myKey;

    @Column(name = "ColumnA")
    private String columnA;

    // Getters and setters
}</code>
Nach dem Login kopieren

Ein anderer Ansatz:

Alternativ kann die @IdClass-Annotation verwendet werden, um einen zusammengesetzten Primärschlüssel zu definieren. Mit diesem Ansatz können Sie die @Id-Annotation direkt in den Schlüsselfeldern verwenden.

<code class="java">@Entity
@IdClass(MyKey.class)
public class YourEntity {

    @Id
    private int id;

    @Id
    private int version;

    // Getters and setters
}</code>
Nach dem Login kopieren
<code class="java">public class MyKey implements Serializable {

    private int id;
    private int version;

    // Getters and setters
}</code>
Nach dem Login kopieren

Entitäten duplizieren:

Um eine Entität mit einer anderen zu duplizieren Version: Erstellen Sie eine neue Instanz mit derselben ID, aber einem anderen Versionswert. Dadurch wird ein separater Eintrag in der Datenbank erstellt, der die neue Version darstellt.

Das obige ist der detaillierte Inhalt vonWie implementiert man zusammengesetzte Primärschlüssel für versionierte Dateneinträge in JPA?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!