2017-06-12 53 views
0

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

我想检索两个表值。 – umapathi

+0

我想在检索用户数据时检索组织详细信息。 – nomadus

+0

在组织表userId是外键 – umapathi

回答

0

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

+0

可能是。是否在组织表中看到id列。其中id表示用户标识表列 – umapathi

+0

我有Id 生成值 列(name =“organization_id”) private Long id;和Id 生成的值 列(name =“user_id”) private Long id; – nomadus

+0

好的。我将发布code.try以添加该代码并检查它。 – umapathi

0

从休眠docs

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

您试图获取的关联在默认情况下是延迟加载的。

现在你有两个解决方案

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

我是否需要实施机器人步骤?添加'@ManyToOne(fetch = FetchType.EAGER)'没有帮助 – nomadus

+0

任何人都应该修复它。 –

+0

你如何获取映射的实体? –