Maison > Java > javaDidacticiel > Comment mapper des clés composites dans JPA et Hibernate à l'aide d'EmbeddedId ou IdClass ?

Comment mapper des clés composites dans JPA et Hibernate à l'aide d'EmbeddedId ou IdClass ?

Susan Sarandon
Libérer: 2024-12-03 05:22:16
original
575 Les gens l'ont consulté

How to Map Composite Keys in JPA and Hibernate using EmbeddedId or IdClass?

Le mappage des clés composites avec JPA et Hibernate

Le mappage des clés composites dans l'API Java Persistence (JPA) et Hibernate peut être réalisé à l'aide du EmbeddedId ou IdClass annotations.

Avec IdClass

  1. Définissez une classe de clé primaire distincte (par exemple, TimePK) qui encapsule les champs de clé composites et leurs getters/setters.
  2. Annoter l'entité avec l'annotation @IdClass, en spécifiant la clé primaire class.
public class TimePK implements Serializable {
    private Integer levelStation;
    private Integer confPathID;
    // getters, setters
}

@Entity
@IdClass(TimePK.class)
class Time {
    @Id
    private Integer levelStation;
    @Id
    private Integer confPathID;
    // ...
}
Copier après la connexion

Avec EmbeddedId

  1. De même, définissez une classe de clé primaire distincte (par exemple, TimePK).
  2. Annotez la classe de clé primaire avec l'annotation @Embeddable.
  3. Annotez l'entité avec l'annotation @EmbeddedId et spécifiez la classe de clé primaire.
@Embeddable
public class TimePK implements Serializable {
    private Integer levelStation;
    private Integer confPathID;
    // getters, setters
}

@Entity
class Time {
    @EmbeddedId
    private TimePK timePK;
    // ...
}
Copier après la connexion

Différences

  • Sémantique : EmbeddedId suggère que la clé composite a une signification spécifique, tandis que IdClass est plus adaptée lorsque la combinaison de champs est simplement une clé unique. identifiant.
  • Syntaxe de requête : Avec EmbeddedId, les champs de clé primaire sont accessibles via la classe de clé primaire intégrée, tandis qu'avec IdClass, les champs sont accessibles directement.

Références

  • Spécification JPA 1.0 : Section 2.1.4, 9.1.14 et 9.1.15

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