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

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

Susan Sarandon
Susan SarandonOriginal
2024-10-29 07:36:02493Durchsuche

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>
  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>

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>
<code class="java">public class MyKey implements Serializable {

    private int id;
    private int version;

    // Getters and setters
}</code>

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!

Stellungnahme:
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