Mise en correspondances des associations un-plusieurs

La persistance EJB 3 prend en charge la correspondance d'association bidirectionnelle un-plusieurs, la correspondance d'association unidirectionnelle un-un, et la correspondance d'association unidirectionnelle un-plusieurs.

Une annotation OneToMany est générée pour définir une association multivaleurs avec une multiplicité un-plusieurs. Une annotation ManyToOne est générée afin de définir une association à une seule valeur avec une autre classe d'entité qui a une multiplicité plusieurs-un. L'annotation JoinColumn est générée pour spécifier une colonne de jointure pour la référence qui associe les tables. Dans le cas des associations bidirectionnelles un-plusieurs, les annotations générées se présenteront comme suit :

@OneToMany(fetch=FetchType.EAGER, mappedBy="customer")
public java.util.Collection<Order> getOrder() { ... }
@ManyToOne
@JoinColumns({
 @JoinColumn(name="cid", referencedColumnName="cid")
})
public Customer getCustomer() { ... }

Les annotations générées pour les associations unidirectionnelles plusieurs-un sont similaires. Une vérification de modèle permet de s'assurer que les correspondances pour les associations un-plusieurs et les associations unidirectionnelles plusieurs-un sont correctement définies. Les références peuvent uniquement naviguer depuis les tables principales des classes du côté multivaleur vers les tables principales de classes du côté à une seule valeur.

Pour une association unidirectionnelle un-plusieurs, l'association JoinTable est générée afin de définir une table intermédiaire et des colonnes de jointures pour les deux clés de référence.

@OneToMany(fetch=FetchType.EAGER)
@JoinTable(
 name="Customer_Order",
 joinColumns={
  @JoinColumn(name="cid", referencedColumnName="cid")
 },
 inverseJoinColumns={
  @JoinColumn(name="oid",
    referencedColumnName="orderId")
 }
)
public java.util.Collection<Order> getOrder() { ... }

Une vérification de modèle est disponible afin de vous assurer que les correspondances pour les associations unidirectionnelles un-plusieurs sont correctement définies. Les tables intermédiaires sont nécessaires pour ce type d'associations un-plusieurs.

Les associations un-plusieurs dans lesquelles la clé primaire est migrée ne sont pas prises en charge dans EJB 3.

Pour plus d'informations sur les correspondances, voir Modélisation des correspondances objet/relationnel (O/R).