1樓:__略懂
問題應該出在主鍵的生成方式上 。傳統的都用native 或者 assigned
通過baidu或者hibernate所有主鍵生成方式 ..又漲知識了 :)
主鍵產生器
可選項說明:
1) assigned
主鍵由外部程式負責生成,無需hibernate參與,即由使用者自己指定。
2) hilo
通過hi/lo 演算法實現的主鍵生成機制,需要額外的資料庫表儲存主鍵生成歷史狀態。
3) seqhilo
與hilo 類似,通過hi/lo 演算法實現的主鍵生成機制,只是主鍵歷史狀態儲存在sequence中,適用於支援sequence的資料庫,如oracle。
4) increment
主鍵按數值順序遞增。此方式的實現機制為在當前應用例項中維持乙個變數,以儲存著當前的最大值,之後每次需要生成主鍵的時候將此值加1作為主鍵。這種方式可能產生的問題是:
如果當前有多個例項訪問同乙個資料庫,那麼由於各個例項各自維護主鍵狀態,不同例項可能生成同樣的主鍵,從而造成主鍵重複異常。因此,如果同一資料庫有多個例項訪問,此方式必須避免使用。
5) identity
採用資料庫提供的主鍵生成機制。如db2、sql server、mysql中的主鍵生成機制。
6) sequence
採用資料庫提供的sequence 機制生成主鍵。如oralce 中的sequence。
7) native
由hibernate根據底層資料庫自行判斷採用identity、hilo、sequence其中一種作為主鍵生成方式。
8) uuid.hex
由hibernate基於128 位唯一值產生演算法生成16 進製數值(編碼後以長度32 的字串表示)作為主鍵。
9) uuid.string
與uuid.hex 類似,只是生成的主鍵未進行編碼(長度16)。在某些資料庫中可能出現問題(如postgresql)。
10) foreign
使用外部表的字段作為主鍵。一般而言,利用uuid.hex方式生成主鍵將提供最好的效能和資料庫平台適
2樓:
在hibernate.cfg.xml檔案中配置 update
hibernate一對多和多對一問題
乍一看,這的確是一種關係從不同的角度去看,但也正是這一點造成兩種關係並不相同。舉個例子 假如,資料庫有部門表,共10個部門 員工表,共100名員工,同時,假設每10名員工屬於乙個部門。那麼,使用多對一的關係,是在員工實體裡放乙個部門實體。而使用一對多的關係,是在部門實體裡放乙個員工實體的集合。假如,...
Hibernate物件關係是一對多好還是多對一好??為什麼
一對多 和多對一 一般是看需求來確定的,很多時候都是設定成雙向的舉個最最普通的離子 一個班級裡面有多個學生 多個學生屬於一個班級 從學生表來看 就是多對一的關係 從班級表來看就是一對多的關係 需求上如果說是從學生表想看到班級 那麼就設定成多對一的關係 如果想從班級看到學生 就設定成一對多的關係 有的...
hibernate多對多對映中間表有多餘字段問題該如何對映
省省是吧。已myeclipse為例 將多對多轉換成乙個多對一和乙個一對多。中間表自己控制。hibernate多對多對映中間表怎麼加入其它字段 旺仔鐵柱 將多對多建立成兩個一對多關係就行了。你的中間表物件沒有主鍵,第一種方式就是你為中間表增加乙個主鍵,這個也是如果要把中間表對映成物件的推薦方式。hib...