Maison > Java > javaDidacticiel > le corps du texte

Comment implémenter des clés primaires composites pour les entrées de données versionnées dans JPA ?

Susan Sarandon
Libérer: 2024-10-29 07:36:02
original
415 Les gens l'ont consulté

How to Implement Composite Primary Keys for Versioned Data Entries in JPA?

Création et gestion de clés primaires composites dans JPA

Scénario :

Envisagez un scénario dans lequel vous devez stocker plusieurs versions de la même saisie de données, représentée par les colonnes id et Version. Le but est de créer une entité capable de dupliquer des entrées avec différentes versions.

Définition de l'entité :

Pour définir une entité avec une clé primaire composite, vous pouvez utiliser le approche suivante :

  1. Classe intégrée : Créez une classe intégrée contenant les champs clés. Cette classe sera utilisée comme EmbeddedId dans l'entité.
<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>
Copier après la connexion
  1. Classe d'entité : La classe d'entité aura une référence à la classe intégrée comme classe principale key.
<code class="java">@Entity
public class YourEntity {

    @EmbeddedId
    private MyKey myKey;

    @Column(name = "ColumnA")
    private String columnA;

    // Getters and setters
}</code>
Copier après la connexion

Une autre approche :

Alternativement, l'annotation @IdClass peut être utilisée pour définir une clé primaire composite. Cette approche permet d'utiliser l'annotation @Id directement sur les champs clés.

<code class="java">@Entity
@IdClass(MyKey.class)
public class YourEntity {

    @Id
    private int id;

    @Id
    private int version;

    // Getters and setters
}</code>
Copier après la connexion
<code class="java">public class MyKey implements Serializable {

    private int id;
    private int version;

    // Getters and setters
}</code>
Copier après la connexion

Duplication d'entités :

Pour dupliquer une entité avec un autre version, créez une nouvelle instance avec le même identifiant mais une valeur de version différente. Cela créera une entrée distincte dans la base de données représentant la nouvelle version.

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!