1:uuid.hex: 採用128位的演算法來產生一個32位字串。最通用的一種方式。適用於所有資料庫 。在*.hbm.xml中
按如下設定。
<id name="id" unsaved-value="null">
<generator class="uuid.hex"/>
</id>
2:指定參數的情況
<id name="id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">SEQ_CHILD</param>
</generator>
</id>
3:以下是Tracylau 所寫,
所有的<generator>的Class都是從net.sf.hibernate.id.IdentifierGenerator介面實現得到的,Class屬性工作表示該
generator是由哪種方式來產生的。產生方式包括:
increment:產生long, short或者int類型的主鍵,不能在cluster環境下使用。適用於所有資料庫
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類型的主鍵。需要提供一個資料庫的表來存放產生的主鍵資訊。當採用應用伺服器
的JTA提供的資料庫連接或者使用者自訂的資料庫連接的時候,不要使用這種主鍵產生方式。適用於所有資料庫
seqhilo:採用給定的資料庫的sequence來產生long, short或者int類型的主鍵。適用於DB2, PostgreSQL,
Oracle, SAP DB, McKoi,Interbase.
uuid.hex:採用128位的演算法來產生一個32位字串。最通用的一種方式。適用於所有資料庫
uuid.string:同樣採用128位的UUID演算法。將產生的字元編碼位16位。適用於除PostgreSQL.以外的資料庫
native:根據具體串連的資料庫從identity, sequence或者hilo選擇一種來產生主鍵。適用的資料庫根據選擇的產生方式確定。
assigned: 交給應用自己給主鍵賦值。要注意的是賦值必須在調用save()方法之前完成。適用的資料庫根據選擇的產生方式確定。