Définit une association à valeur unique vers une autre classe d’entité qui a une multiplicité many-to-one. Il n’est normalement pas nécessaire de spécifier explicitement l’entité cible puisqu’elle peut généralement être déduite du type de l’objet référencé. Si la relation est bidirectionnelle, le côté de l’entité OneToMany
non propriétaire doit utiliser l’élément mappedBy
pour spécifier le champ ou la propriété de relation de l’entité qui est propriétaire de la relation.
L’annotation ManyToOne
peut être utilisée dans une classe intégrable pour spécifier une relation de la classe intégrable à une classe d’entité. Si la relation est bidirectionnelle, le côté entité OneToMany
non propriétaire doit utiliser l’élément mappedBy
de l’annotation OneToMany
pour spécifier le champ ou la propriété de relation du champ ou de la propriété intégrable du côté propriétaire de la relation. La syntaxe de notation du point (« . ») doit être utilisée dans l’élément mappedBy
pour indiquer l’attribut de relation dans l’attribut incorporé. La valeur de chaque identifiant utilisé avec la notation par points est le nom du champ ou de la propriété incorporé(e) respectif(ve).
Exemple 1 :
@ManyToOne(optional=false) @JoinColumn(name="CUST_ID", nullable=false, updatable=false) public Customer getCustomer() { return customer; }
Exemple 2 :
@Entity public class Employee { @Id int id; @Embedded JobInfo jobInfo; ... } @Embeddable public class JobInfo { String jobDescription; @ManyToOne ProgramManager pm; // Bidirectional } @Entity public class ProgramManager { @Id int id; @OneToMany(mappedBy="jobInfo.pm") Collection manages; }