假设您已使用定义了
Enterprise->
Employers关联
@OneToMany,这意味着an
Employer仅属于一个
Enterprise,则应使用
@ManyToOne,意味着每个都
Employer属于max。1
Enterprise,但是
Enterprise可以参考很多
Employers。
您可以使用
mapped-by注释中的属性仅在一侧之一中定义关联细节(连接列等):
@Entityclass Enterprise{ @oneToMany(mapped-by="enterprise") public List<Employee> getEmployers() // implementation @oneToOne public Employee getPresident() // implementation}@Entityclass Employee { @ManyToOne @JoinTable ( name="Enterprise", joinColumns={ @JoinColumn(name="ENT_ID", referencedColumnName="ENT_ID") } public Enterprise getEnterprise() // implementation}在情况下
Employer可能是一个不同的总裁
Enterprise,他采用(似乎不太可能,除非你可以是一个企业的总裁,而不被它采用的),并且如果你需要访问
Enterprise它的
Employer是总统从
Employer实体,您可能需要添加另一个关联,理想情况下是这样
@OneToOne(您会遇到问题,因为@OneToOne关系要求两个实体都具有相同的@Id类)。在这种情况下,出于实际原因,我将使用注释该
getPresidedEnterprise()方法。
Employer``@ManyToOne



