如何映射Hibernate中的整數列表? tanx!映射與休眠的整數列表
這樣的:
@Entity
class A{
List<Integer> p;
@OneToMany
getP(...){..};
setP(...){..};
}
如何映射Hibernate中的整數列表? tanx!映射與休眠的整數列表
這樣的:
@Entity
class A{
List<Integer> p;
@OneToMany
getP(...){..};
setP(...){..};
}
使用@ElementCollection映射。請參閱documentation
創建一個包含整數作爲一個字段值一個新的實體,然後映射到實體,而不是整數的列表。
您將不得不創建一個存儲這些ID並將該表作爲常規@OneToMany關係的新表。
@Entity
class A{
List<MyRefTable> p;
@OneToMany
getP(...){..};
setP(...){..};
}
@Entity MyRefTable {
long myRefTableId;
int p;
}
就像其他任何與A實體具有OneToMany關係的表一樣。 數據庫中沒有「list」構造。
塞巴斯蒂安
這對於如此簡單的事情來說開銷太大了。 @ElementCollection將完成這項工作 –
您可以使用元素集合而不是創建單獨的實體,這將具有真實的構圖。請參考doc
這對於這麼簡單的事情來說開銷太大了。 @ElementCollection將完成這項工作 –
在數據庫中進行連接的開銷非常大,這與使用'ElementCollection'不會有太大的不同。當然,'ElementCollection'具有一些優點,比如略顯冗長,但我認爲僅僅因爲可能有更好的答案而對每個可行的答案進行倒票是不公平的。 – Thor84no
對不起,但你的建議基本上不好。只是因爲無法正確映射對象模型而開始污染數據庫。也許在小型項目或個人項目中添加列是可以接受的,但在大型企業級數據庫中,每個新列都必須合理,不能像任何開發人員那樣添加。這同樣適用於Java端。您的實施問題會影響公共課程界面。通常情況下,如果你沒有JPA,你永遠不會創建一個奇怪的對象列表'List'只是爲了存儲'Integer'。 –