Definuje jednohodnotovou asociaci na jinou třídu entit, která má multiplicitu many-to-one. Obvykle není nutné cílovou entitu explicitně specifikovat, protože ji lze obvykle odvodit z typu odkazovaného objektu. Pokud je vztah obousměrný, musí nevlastnící strana entity OneToMany
použít prvek mappedBy
k určení pole vztahu nebo vlastnosti entity, která je vlastníkem vztahu.
Anotaci ManyToOne
lze použít v rámci vložitelné třídy pro specifikaci vztahu z vložitelné třídy na třídu entit. Pokud je vztah obousměrný, musí nevlastnící strana entity OneToMany
použít prvek mappedBy
anotace OneToMany
k určení vztahového pole nebo vlastnosti vložitelného pole nebo vlastnosti na vlastnící straně vztahu. Pro označení vztahového atributu v rámci vloženého atributu musí být v prvku mappedBy
použita syntaxe zápisu s tečkou („.“). Hodnota každého identifikátoru použitého s tečkovou notací je název příslušného vloženého pole nebo vlastnosti.
Příklad 1:
@ManyToOne(optional=false) @JoinColumn(name="CUST_ID", nullable=false, updatable=false) public Customer getCustomer() { return customer; }
Příklad 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; }
.