Define uma associação de valor único para outra classe de entidade que tem uma multiplicidade de muitas a uma. Normalmente não é necessário especificar explicitamente a entidade de destino, pois ela pode ser inferida a partir do tipo do objeto a ser referenciado. Se a relação for bidirecional, o lado da entidade sem propriedade OneToMany
deve usar o elemento mappedBy
para especificar o campo ou propriedade da relação da entidade que é a proprietária da relação.
A anotação ManyToOne
pode ser usada dentro de uma classe embeddable para especificar um relacionamento da classe embeddable para uma classe de entidade. Se o relacionamento for bidirecional, o lado não-titular OneToMany
entidade deve usar o elemento mappedBy
da anotação OneToMany
para especificar o campo ou propriedade do campo ou propriedade incorporável do lado proprietário do relacionamento. A sintaxe da notação ponto (“.”) deve ser usada no elemento mappedBy
para indicar o atributo de relação dentro do atributo embutido. O valor de cada identificador utilizado com a notação de ponto é o nome do respectivo campo ou propriedade embutida.
Exemplo 1:
@ManyToOne(optional=false) @JoinColumn(name="CUST_ID", nullable=false, updatable=false) public Customer getCustomer() { return customer; }
Exemplo 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; }