主鍵建置原則

來源:互聯網
上載者:User

increment策略:擷取資料庫中最大ID,並在該基礎上加1作為新id,可以應用於任何資料庫。
格式:<id name="" column="">
  <generator class="increment" />
  </id>

identity策略:設定表中的ID列為自動成長,可以用於MS SQL Server、MySQL和DB2。
格式:<id name="" column="">
  <generator class="identity" />
  </id>

sequence策略:使用序列機制產生ID,主要用於Oracle、DB2資料庫。
格式:<id name="" column="">
   <generator class="sequence">
    <param name="sequence">序列名</param>
   </generator>
  </id>
 
hilo策略:成為高低位演算法,產生的屬性值為long、short、int及對應的封裝類,根據演算法產生一個唯一的ID
必須在資料庫中建立一個存放高低位的表,表中有一列名為next_hivalue,並在該表中插入一行資料,該策略適合任何資料庫
格式:<id name="" column="" type="">,type類型必須為:short、int、long或對應的封裝類型
  <generator class="hilo">
   <param name="table">儲存高位值的表</param>
   <param name="column">next_hivalue</param>
  </generator>
  </id>
 
seqhilo策略:序列高低位策略,產生的屬性值為long、short、int及對應的封裝類,根據演算法產生一個唯一的ID,與高低位
策略不同的是,不需要單獨建立資料表格儲存體高低位種子,根據序列作為高低位種子,適用於Oracle資料庫。
格式:<id name="" column="">
   <generator class="seqhilo">
    <param name="sequence">序列名</param>
   </generator>
  </id>
 
uuid策略:採用128為UUID演算法產生一個字串類型主索引值。可以用於任何資料庫,ID列必須為字串類型。
格式:<id name="" column="">
  <generator class="uuid" />
  </id>

guid策略:藉助MS SQL Server和MySQL的GUID字串產生ID標識,ID列為字串類型,只適用於SQL Server和MySQL
格式:<id name="" column="">
  <generator class="guid" />
  </id>
 
native策略:自動根據底層資料庫選擇一個合適的ID策略,從identity、sequence、hilo中選擇。
格式:<id name="" column="">
  <generator class="native" />
  </id>

assigned策略:由Hibernate指定產生的ID,在調用save方法時需要設定PO的ID屬性,盡量避免使用
格式:<id name="" column="">
  <generator class="assigned" />
  </id>
 
foreign策略:在一對一映射時使用,用於共用主鍵
格式:<id name="" column="">
  <generator class="foreign">
   <param name="property">要引用的類</param>
  </generator>
  </id>

聯繫我們

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