<!--設置主鍵映射-->
<id name="" column="" type="">
<generator class=""> 設置主鍵生成器
</id>
Hibernate框架內建為主鍵提供了多種生成器,具體包括如下內容:
1. increment:用于為long,short,int類型生成唯一標識。
2. identity:對DB2,MySQL,MS SQL Server,Sybase和HypersonicSQL的內置標識字段提供支持。
3. sequence:在DB2,PostgreSQL,Oracle,SAPDB,McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。
4. hilo:使用一個高/低位算法高效生成long,short或int類型的標識符。給定一個表和字段(默認分別是hibernate_unique_key和next)作為高位值的來源。高/低位算法生成的標識符只在一個特定的數據庫中是唯一的。
5. seqhilo:使用一個高/低位算法高效生成long,short或int類型的標識符,給定一個數據庫序列(sequence)的名字。
6. uuid.hex:用一個128-bit的UUID算法生成字符串類型的標識符。在一個網絡中是唯一的(使用了IP地址)。UUID被編碼位一個32位16進制數字的字符串。
7. uuid.string:使用同樣的UUID算法。UUID被編碼位一個16個字符長的任意ASCII字符組成的字符串。
8. native:根據底層數據庫的能力選擇identity、sequence、hilo中的一個。
9. assigned:讓應用程序在插表之前為對象分配一個標識符。
10. foreign:使用另一個相關聯的對象的標識符。通常被用在有關聯關系的表中。
一般來說,在Hibernate中,不推薦用assigned作為主鍵生成器。因為對數據庫表來說,以業務邏輯字段作為主鍵有潛在的危險性。當該業務邏輯字段在將來需要改變的時候,作為主鍵的應用就會相當麻煩。常用的手段是用一個和業務無關的字段作為主鍵,而在PO中定義這個字段成為變量屬性,同事又作為該對象的惟一標識。
posted on 2008-04-26 18:15
Kira-2006 閱讀(425)
評論(0) 編輯 收藏 所屬分類:
hibernate