Maison > Java > javaDidacticiel > le corps du texte

Comment implémenter le contrôle de version des données avec des clés primaires composites dans JPA ?

Mary-Kate Olsen
Libérer: 2024-10-27 11:01:01
original
606 Les gens l'ont consulté

How to Implement Data Versioning with Composite Primary Keys in JPA?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!