@OneToMany在spring数据jpa中给出null值

时间:2017-08-17 20:32:45

标签: java spring jpa spring-data-jpa

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]

任何人都可以在这里帮助我。

2 个答案:

答案 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()。