[英]Which collection type can choose in mapping in hibernate
我有兩個實體,即客戶和訂單。一個客戶有多個訂單。我嘗試雙向一對多和多對一。所以,我可以選擇哪個集合 object 即,包,map 等。那么,我可以選擇什么基礎集合 object 使用一對多和多對一的雙向關系?
如果每個訂單都是唯一的,並且客戶不能在同一個集合中兩次擁有相同的訂單,則使用 Set 否則使用 List
首先,請記住您必須為每個 class 覆蓋 equals() 和 hashCode() 函數:
使用 List 時,您可以用不同的方式 map 它:
有序列表的實現方式如下:
@OneToMany(mappedBy="customer")
@OrderBy("number")
public List<Order> getOrders() { return orders; }
索引列表映射如下:
@OneToMany(mappedBy="customer")
@OrderColumn(name="orders_index")
public List<Order> getOrders() { return orders; }
要將索引值存儲在專用列中,請在您的屬性上使用@javax.persistence.OrderColumn
注釋。 此注釋描述了保持索引值的列的列名和屬性。 此列位於包含關聯外鍵的表上。 如果未指定列名,則默認為引用屬性的名稱,后跟下划線,后跟 ORDER(在以下示例中,它將是 orders_ORDER)。
如果你想使用Set<Order>
這很簡單:
@OneToMany(mappedBy="customer")
public Set<Order> getOrders() { return orders; }
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.