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é :
@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
}
Utilisation de @IdClass
Vous pouvez également annoter la classe avec @IdClass et définir les attributs d'ID comme @Id dans la classe :
@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;
}
Duplication d'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 :
YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // new version
newVersion.setColumnA("Some Other Data");
entityManager.persist(newVersion);
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3