【发布时间】:2017-08-17 20:32:45
【问题描述】:
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。
//打印语句
Enterprise with Organizations:Enterprise [enterpriseId=13, enterpriseName=xyz, organizations=null]
谁能帮帮我。
【问题讨论】:
-
你是如何插入的,又是如何获取的?
-
@AmerQarabsa 使用 JpaRepository。组织组织=新组织(); organization.setOrganizationName("XYZSoftware");组织.setEnterprise(企业);组织 savedOrganization = this.repository.save(organization); System.out.println("企业与组织:" + savedOrganization.getEnterprise().getOrganizations()); System.out.println("Enterprise with Organizations:" + this.enterpriseRepository.findOne(enterprise.getEnterpriseId()));
-
你能显示
organizations的getter吗? -
@LudovicGuillaume getter 只是普通的 getter。在变量级别,我绘制了组织图。 @OneToMany(mappedBy = "enterprise", fetch = FetchType.EAGER) 私有列表
组织;如果我从 Enterprise.toString() 中删除组织,我就能得到它。现在的问题是,Enterprise->Organization->Enterprise->.... 递归对象构建正在发生。我只想获得一次对象。如何解决?即,只有企业->组织。 -
我们需要更多信息。在哪种情况下您会遇到递归问题?简单打印,Json 转换,...?
标签: java spring jpa spring-data-jpa