如何查看子行

时间:2017-06-12 10:10:23

标签: hibernate spring-boot

我有两个实体,一个用户和一个组织实体。它们通过使用一对多关系(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;

当我从组织中检索数据时,我可以看到每个给定组织的用户列表,但是当我检索用户时,我看不到组织的详细信息。 我怎样才能获得组织的详细信息?

2 个答案:

答案 0 :(得分:0)

我添加了@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id"),这就是诀窍。我希望这是正确的解决方案。

答案 1 :(得分:0)

来自Hibernate docs

  

默认情况下,Hibernate3对集合使用延迟选择提取,对单值关联使用延迟代理提取。这些默认值对大多数应用程序中的大多数关联都有意义。

您尝试获取的关联默认为延迟加载。

现在你有两个解决方案

  1. @ManyToOne(fetch=FetchType.EAGER)内使用Organisation 实体。
  2. 使用JOIN FETCH来获取您映射的实体。