我有两个实体,一个用户和一个组织实体。它们通过使用一对多关系(Orgamization(one)User(many))进行映射。 组织:
@JsonManagedReference
@OneToMany(cascade = CascadeType.ALL, mappedBy = "organization", fetch = FetchType.LAZY)
private List<User> users;
用户:
@JsonBackReference
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "organization_id", referencedColumnName = "organization_id")
private Organization organization;
当我从组织中检索数据时,我可以看到每个给定组织的用户列表,但是当我检索用户时,我看不到组织的详细信息。 我怎样才能获得组织的详细信息?
答案 0 :(得分:0)
我添加了@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
,这就是诀窍。我希望这是正确的解决方案。
答案 1 :(得分:0)
来自Hibernate docs
默认情况下,Hibernate3对集合使用延迟选择提取,对单值关联使用延迟代理提取。这些默认值对大多数应用程序中的大多数关联都有意义。
您尝试获取的关联默认为延迟加载。
现在你有两个解决方案
@ManyToOne(fetch=FetchType.EAGER)
内使用Organisation
实体。 JOIN FETCH
来获取您映射的实体。