Hibernate 主鍵自動產生的方法

來源:互聯網
上載者:User

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()方法之前完成。適用的資料庫根據選擇的產生方式確定。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.