我有2个实体和一个嵌入式对象。为了使讨论保持通用,我将其称为Project,ProjectAssociation(嵌入式对象),employee。
使用项目关联将员工与Project关联。
我的业务需求是,我应该能够从员工那里查找projectAssociation。此外,将来我们可以期望projectAssociation获得更多属性。 projectAssociation的生命周期将始终与项目相关。
通过projectAssociation嵌入式对象,Project和雇员实体之间具有多对多关系。
如何从项目到项目关联配置映射。
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;
}
}
最佳答案
您需要使用中间表和外键列将其映射为@ManyToMany,然后设置Inverse(),以便Employee不维护任何链接表条目
@ManyToMany(...)
@Inverse()
public Set<Project> getProjects() {
return projects;
}
关于java - hibernate :当在嵌入式集合的对象中维护“多对一”关系的“多对一”关系时,如何设置按属性映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10830442/