Hibernate 主鍵生成策略
Posted on 2010-10-14 15:41 Gavin.lee 閱讀(500) 評(píng)論(0) 編輯 收藏 所屬分類: SSH2 --Hibernateincrement:生成long, short或者int類型的主鍵,不能在cluster環(huán)境下使用。適用于所有數(shù)據(jù)庫(kù)
identity:生成long, short或者int類型的主鍵。適用于DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL
sequence :生成long, short或者int類型的主鍵。適用于DB2, PostgreSQL, Oracle, SAP DB, McKoi,Interbase.
hilo:生成long, short或者int類型的主鍵。需要提供一個(gè)數(shù)據(jù)庫(kù)的表來(lái)存放生成的主鍵信息。當(dāng)采用應(yīng)用服務(wù)器的JTA提供的數(shù)據(jù)庫(kù)連接或者用戶自定義的數(shù)據(jù)庫(kù)連接的時(shí)候,不要使用這種主鍵生成方式。適用于所有數(shù)據(jù)庫(kù)
seqhilo:采用給定的數(shù)據(jù)庫(kù)的sequence來(lái)生成long, short或者int類型的主鍵。適用于DB2, PostgreSQL, Oracle, SAP DB, McKoi,Interbase.
uuid.hex:采用128位的算法來(lái)生成一個(gè)32位字符串。最通用的一種方式。適用于所有數(shù)據(jù)庫(kù)
uuid.string:同樣采用128位的UUID算法。將生成的字符編碼位16位。適用于除PostgreSQL.以外的數(shù)據(jù)庫(kù)
native:根據(jù)具體連接的數(shù)據(jù)庫(kù)從identity, sequence或者h(yuǎn)ilo選擇一種來(lái)生成主鍵。適用的數(shù)據(jù)庫(kù)根據(jù)選擇的生成方式確定。
assigned: 交給應(yīng)用自己給主鍵賦值。要注意的是賦值必須在調(diào)用save()方法之前完成。適用的數(shù)據(jù)庫(kù)根據(jù)選擇的生成方式確定。