2 つのエンティティと埋め込みオブジェクトがあります。議論を一般的なものにするために、プロジェクト、ProjectAssociation (組み込みオブジェクト)、従業員と呼ぶことにします。
従業員は、プロジェクト関連付けを使用して Project に関連付けられます。
私のビジネス要件は、employee から projectAssociation を検索できるようにすることです。さらに、将来的には projectAssociation がより多くの属性を取得することが期待できます。projectAssociation のライフサイクルは、常にプロジェクトに関連付けられます。
プロジェクト エンティティと従業員エンティティは、projectAssociation 埋め込みオブジェクトを介して多対多の関係を持ちます。
プロジェクトからプロジェクトへの関連付けを構成してマッピングするにはどうすればよいですか?
Employee {
Project projects;
@OneToMany(mappedBy="What to set here?")
public Set<Project> getProjects() {
return projects;
}
public void setProjects(Set<Project> projects) {
this.projects= projects;
}
}
Project {
Set<ProjectAssociation> projectAssocs;
@Embedded
@ElementCollection
public Set<ProjectAssociation> getProjectAssociation() {
return projectAssocs;
}
public void setProjectAssociation(Set<ProjectAssociation> hostRecovery) {
this.projectAssocs = projectAssocs;
}
}
ProjectAssociation {
// Parent association variable and methods are omitted for brevity
Employee employee;
@ManyToOne
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
}