2017-06-12 50 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

你如何獲取映射的實體? –