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