Hibernate面試題 --- Hibernate主鍵的建置原則(Oracle資料運用那種主鍵建置原則)__Oracle

來源:互聯網
上載者:User

Hibernate主鍵的建置原則

<class name="Customers" table="customers">

       <id name="id" column="id">

           <!-- 主鍵的建置原則 -->

           <generator class="native"></generator>

       </id>

<class>

<id>標籤是為每一個執行個體包含唯一的標識,唯一的標識要有主鍵產生器,可選的 <generator>子項目是一個java類的名字,用來為該持久化類的執行個體產生唯一的標識。

所有的主鍵產生器都實現org.hibernate.id.TableLoGenerator介面

下面主要討論一下hibernate內建產生器的快捷名字和使用

分為下面幾種:

increment,identity,sequence,

Hilo, seqhilo, uuid, guid, native, assigned, select, foreign, sequence-identity

 

分別來介紹一下這幾個取值的作用和意義:

    increment

       用於為long和short或者int類型產生唯一識別碼,只有在沒有其他進程往同一張表插入資料時才能使用,在集體下不要使用

    ientity

       對DB2,MySql,MS SQL Server,Sybase和HypersonicSQL的內建識別欄位提供支援,返回的標識符是long,short或者int類型的。

    sequence

       在DB2.,PostgreSQL,SAP DB,McKoi中使用序列,而在Interbase中使用產生器。返回的標識符是long,short或者int類型的。

    hilo

        使用一個高/低位演算法高效的生long,short,擷取int類型的標識符,給定義二表和欄位作為高位置的來源。高低位演算法產生的標識符只在一個特定的資料庫中是唯一的。

    seqhilo

       使用一個高/低位演算法來高效的產生long,short擷取int類型的標識符,給定一個資料庫序列的名字

    uuid

       用一個128-bit的UUID演算法產生字串類型的標識符,這是在一個網路中是唯一的,UUID被編碼為一個32位16進位數位字串

    guid

       在MS SQL Server和MySql中使用資料庫產生GUID字串

    native

       根據底層資料庫的能力選擇identity,sequence擷取hilo中的一個

    assigned

       讓應用程式在save()之前為對象分配一個標識符,這是<geneerator>元素沒有指定時的預設的建置原則

    select

       通過資料庫觸發器選擇一些唯一主鍵的行並返回主索引值來分配一個主鍵

    foreign

       通過另外一個相關聯的對象的標識符,通常和<ont-to-one>聯合起來使用
    sequence-identity

       一種特別的序列產生的策略,使得資料庫序列來產生實際值,但將它和JDBC3的getGeneratedKeys結合在一起,使得在插入語句執行的的時候就返回產生的值,目前為止只有物件導向JDK1.4的Oracle 10g驅動支援這一策略,注意,因為Oracle驅動程式的一個bug,這些插入語句的注釋被關閉了。

 

可以總結一下,對Oracle資料進行使用的有:

1) assigned
2) hilo
3) seqhilo
4) increment
5) identity
6) sequence
7) native方式。
8) uuid.hex 9) uuid.string
10) foreign

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.