2017-04-05 138 views
0

我有一個類型爲Set的幾個字段的實體。當我從數據庫中檢索實體時,即使數據庫中的關聯正確,該集合也始終爲空。持久集是空的休眠

@Valid 
@NotNull 
@OneToMany(fetch = FetchType.EAGER) 
private Set<Location> locations; 

我已經嘗試啓用渴望提取強制hibernate加載它的實體,但它總是空的時候的關聯。非集合類型的其他字段正確填充。

我從來沒有見過這個與hibernate之前,我做錯了什麼?

感謝

回答

1

不是100%,但99%的把握認爲你需要添加cascade@OneToMany - 默認級聯沒有級聯可言,也就是說如果你堅持你的實體,該Location收集不會持久..

試試這個:

@Valid 
@NotNull 
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) 
private Set<Location> locations; 

換句話說,你的問題是不是沒有被提取的集合,但它沒有被擺在首位堅持(你有沒有看到anythi ng的位置和連接表?)

編輯 - 我現在看到你寫的關聯是正確的,所以你堅持你的位置對象分開?

0

我想你錯過了mappedBy屬性。

@OneToMany(fetch = FetchType.EAGER, mappedBy="fieldname") 

如果字段名應該是引用字段的位置實體名稱