Hibernate 中oracle 主鍵的自動生成辦法(筆記)

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 所寫,網址如下:http://forum.javaeye.com/allbloglist.php?page=5
所有的<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()方法之前完成。適用的數據庫根據選擇的生成方式確定。 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章