posts - 30,  comments - 50,  trackbacks - 0
          1) Assigned
                主鍵由外部程序負責生成,無需Hibernate參與。
          2) hilo
                通過hi/lo 算法實現的主鍵生成機制,需要額外的數據庫表保存主鍵生成歷史狀態(tài)。
          3) seqhilo
                與hilo 類似,通過hi/lo 算法實現的主鍵生成機制,只是主鍵歷史狀態(tài)保存在Sequence中,適用于支持Sequence的數據庫,如Oracle。
          4) increment
                主鍵按數值順序遞增。此方式的實現機制為在當前應用實例中維持一個變量,以保存著當前的最大值,之后每次需要生成主鍵的時候將此值加1作為主鍵。
                這種方式可能產生的問題是:如果當前有多個實例訪問同一個數據庫,那么由于各個實例各自維護主鍵狀態(tài),不同實例可能生成同樣的主鍵,從而造成主鍵重復異常。因此,如果同一數據庫有多個實例訪問,此方式必須避免使用。
          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
                 使用外部表的字段作為主鍵。
          posted on 2008-08-22 15:36 心。 閱讀(299) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 菏泽市| 留坝县| 平乡县| 南阳市| 宜都市| 石楼县| 保靖县| 曲靖市| 德令哈市| 察雅县| 铁岭县| 蒙阴县| 西安市| 连山| 和平区| 英吉沙县| 台安县| 奉贤区| 周宁县| 白山市| 大荔县| 台中县| 澄城县| 岳阳市| 马山县| 邢台县| 屯昌县| 临西县| 蓬莱市| 崇明县| 丰都县| 临澧县| 澄江县| 正镶白旗| 郧西县| 壤塘县| 成安县| 徐汇区| 永川市| 吴旗县| 稻城县|