hibernate3 一對一對映延遲載入失效

2021-08-31 15:24:42 字數 384 閱讀 3048

例子:新聞索引a表   內容b表,b在資料庫中是clob型別。根據主從關係,b中建立了外來鍵。下面a、b也指實體類。

a的對映配置中有lazy="proxy"設定了延遲載入,但是實際執行並不會延遲載入,hibernate會執行乙個join或者另外執行一條獲取b的sql。

從資料庫設計來說一對一實體關係模型是根據主從關係在從實體關係中加入另乙個關係碼,這樣只會在b表中建立外來鍵。這樣的話實際執行的時候會發現hibernate並沒有延遲載入b。

解決辦法是在a的對映檔案中one-to-one加上constrained="true",也就是給a加上乙個外來鍵並且不要設定fetch="join"。但是這樣就出來另乙個問題,以上面為例,新增新聞的時候要同時寫兩個表,並且要先寫內容表,為了解決問題我取消了內容表裡的外來鍵。

hibernate對映(三) 一對一

說起一對一關聯對映它有兩種方式來實現。下面分別說一下它的兩種不同的對映方式。從圖中,可以猜到這種一對一對映是通過兩張表擁有相同的主鍵來進行關聯的。只有在載入的時候,二條資料的主鍵相同就關聯載入。在這裡,我們通過people來載入idcard,進行一一對應。在設計實體類時,由於是根據people來載入...

Hibernate 一對一對映(二)

上篇介紹了hibernate一對一對映通過主鍵關聯,這篇介紹一對一對映通過唯一外來鍵關聯,還是用person和idcard例項說明。唯一外來鍵關聯其實是多對一的的特例,採用標籤來對映,指定多的一端unique為true,這樣就限制了多的一端的多重性為一,就是這樣來對映的。單向 person端 pac...

hibernate一對一關聯對映

一對一主鍵關聯對映 單向關聯person idcard 讓兩個實體物件的id保持相同,這樣可以避免多餘的字段被建立 具體對映 idcard 一對一主鍵關聯對映 雙向關聯person idcard 需要在idcard對映檔案中加入標籤指向person,指示hibernate如何載入person 預設根...