hibernate 註解 一對多 唯一索引

2021-08-31 10:08:42 字數 624 閱讀 6055

今天被hibernate和mysql整了一下,切身感受到索引的重要性。

我用的是hibernate註解的一對多對映,**如下:

@onetomany(cascade=cascadetype.all, fetch=fetchtype.lazy)

@jointable(name="user_followby",

joincolumns=,

inversejoincolumns=)

private listfollowby = new linkedlist();

這裡有一點需要注意的,就是「unique=false」這句。如果沒有這句,則資料庫中生成的庫表user_followby中,其followby_id 欄位會建立相應的唯一索引,然而,這樣很有可能會導致元素無法插入。舉個例子:

當「user_followby」表中存在 (14,1)這條記錄,當你想在插入(10,1)時,系統就會報錯,原因是followby_id欄位建立了唯一索引,但外部試圖向其插入某個記錄時,假如這個記錄對應followby_id的值跟表中原來存在的數值相同,則無法插入。

所以在用註解描述一對多關係時,視具體情況,加上「unique=false」這句。

其實,調bug是一種享受。

hibernate註解一對多 多對一

註解 多對一刪除時 只執行多的一方而一不會改變 新增時考慮 一的一方主鍵是否存在 cascade表示級聯操作 cascadetype.merge級聯更新 cascadetype.persist級聯重新整理 cascadetype.refresh級聯儲存 cascadetype.remove級聯刪除 ...

Hibernate一對多 雙向

hibernate 雙向關聯就是有 一對多 和 多對一 兩個關聯組合而成德,在雙向關聯的兩端都知道對方是誰。下面就開始演示這種關聯。首先定義我們需要使用的pojo物件。public class member public class order 兩個pojo對應的對映檔案分別為member.hbm....

Hibernate一對多對映

一對多使用區縣和街道舉例 街道的實體 private integer jdid 街道的id private string jdname 街道名 private quxian quxian 屬於哪個區縣 區縣的實體 private integer qxid 區縣的id private string q...