Maison > Java > javaDidacticiel > le corps du texte

Comment les clés primaires composites peuvent-elles être utilisées pour gérer les versions de données dans JPA ?

DDD
Libérer: 2024-10-30 16:44:25
original
461 Les gens l'ont consulté

How can composite primary keys be used to manage data versions in JPA?

Création et gestion d'une clé primaire composite dans JPA

Pour gérer les versions de données au sein d'une entité, la création d'une clé primaire composite permet la duplication de entrées basées sur les numéros de version. Considérez l'implémentation suivante :

@Entity
public class YourEntity {
    @EmbeddedId
    private MyKey id;
    private String columnA;
    // Getters and setters omitted for brevity
}

@Embeddable
public class MyKey implements Serializable {
    private int id;
    private int version;
    // Getters and setters omitted for brevity
}
Copier après la connexion

En utilisant cette approche, les champs id et version forment la clé primaire composite. Cela permet la création de plusieurs versions pour chaque enregistrement de données :

Entity 1: id = 1, version = 0, columnA = "Data Entry 1"
Entity 2: id = 1, version = 1, columnA = "Updated Data Entry 1"
Copier après la connexion

Une méthode alternative pour définir une clé primaire composite consiste à utiliser l'annotation @IdClass :

@Entity
@IdClass(MyKey.class)
public class YourEntity {
    @Id
    private int id;
    @Id
    private int version;
    private String columnA;
    // Getters and setters omitted for brevity
}

public class MyKey implements Serializable {
    private int id;
    private int version;
    // Getters and setters omitted for brevity
}
Copier après la connexion

Dans ce cas, la classe MyKey sert de classe de clé primaire, et les champs id et version qu'elle contient sont tous deux annotés avec @Id.

En utilisant les annotations @EmbeddedId ou @IdClass, JPA peut gérer efficacement les clés primaires composites, faciliter le stockage et la récupération des versions de données au sein d'une seule entité.

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