La persistance EJB 3 prend en charge à la fois la correspondance d'association bidirectionnelle un-un et la correspondance d'association unidirectionnelle un-un.
L'annotation OneToOne est générée pour définir une association a une seule valeur à une autre entité dotée d'une multiplicité un-un. Dans le cas des associations bidirectionnelles un-un, les annotations générées se présenteront comme suit :
@OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER) @JoinColumns({ @JoinColumn(name="aid", referencedColumnName="aid") }) public Account getAccount() { ... } @OneToOne(cascade=CascadeType.PERSIST, mappedBy="account") public Person getPerson() { ... }
Les annotations générées pour les associations unidirectionnelles un-un sont similaires. Une vérification de modèle permet de s'assurer que les correspondances sont correctement définies pour les associations unidirectionnelles un-un. Une association unidirectionnelle ne peut être mise en correspondance qu'avec une référence qui a la même direction que l'association.
Pour plus d'informations sur les correspondances, voir Modélisation des correspondances O/R.