public class Enterprise{
.....
@OneToMany(mappedBy = "enterprise", fetch = FetchType.EAGER)
private List<Organization> organizations;
.....
}
public class Organization{
....
@ManyToOne
@JoinTable(name = "enterprise_organization_map", joinColumns = {
@JoinColumn(name = "organization_id") }, inverseJoinColumns = { @JoinColumn(name = "enterprise_id") })
private Enterprise enterprise;
....
}
当我尝试获取Enterprise时,我没有获得映射的组织。它返回null。
// print statement
企业与组织:企业[enterpriseId = 13,enterpriseName = xyz,organizations = null]
任何人都可以在这里帮助我。
答案 0 :(得分:0)
双向一对多关联需要帮助方法来链接&#39;两个实体,请参阅manual:
每当形成双向关联时,应用程序 开发人员必须确保双方始终保持同步。该 addPhone()和removePhone()是同步的实用程序方法 每当添加或删除子元素时,两端都会结束。
因此,您必须向Enterprise
添加至少一个此类方法,并在Organization
添加到Enterprise
时使用它:
public Enterprise addOrganization(Organization organization) {
organization.setEnterprise(this);
this.organizations.add(organization);
return this;
}
我的代码中没有看到这样的方法。我认为这就是你问题的原因。
您可以在此处找到有关一对多的其他有用信息:Best Practices for Many-To-One and One-To-Many Association Mappings。
答案 1 :(得分:0)
问题在于toString()。