Gestion des clés primaires composites avec JPA
La gestion des versions des données nécessite la possibilité de dupliquer une entité avec différentes versions, ce qui rend essentiel la création d'un composite clé primaire pour les entités.
Définition d'entité avec clé primaire composite
Dans JPA, les clés primaires composites peuvent être définies à l'aide des annotations @EmbeddedId ou @IdClass.
Utilisation de @EmbeddedId
Définissez une classe distincte (@Embeddable annotée) pour la clé, puis annotez-la avec @EmbeddedId dans l'entité :
<code class="java">@Entity public class YourEntity { @EmbeddedId private MyKey myKey; private String columnA; // getters and setters } @Embeddable public class MyKey implements Serializable { private int id; private int version; // getters and setters }</code>
Utilisation de @IdClass
Vous pouvez également annoter la classe avec @IdClass et définir les attributs ID comme @Id dans la classe :
<code class="java">@Entity @IdClass(MyKey.class) public class YourEntity { @Id private int id; @Id private int version; } public class MyKey implements Serializable { private int id; private int version; }</code>
Duplication Entités avec versions
Une fois l'entité définie, elle peut être dupliquée avec une nouvelle version. Par exemple, pour créer une nouvelle version de la première entité avec id=1 :
<code class="java">YourEntity newVersion = new YourEntity(); newVersion.setMyKey(new MyKey(1, 1)); // new version newVersion.setColumnA("Some Other Data"); entityManager.persist(newVersion);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!