1. 程式人生 > >Hibernate主鍵增長策略

Hibernate主鍵增長策略

1、assigned 主鍵由自己維護,在session.save()之前必須給定一個id值 hibernate不負責維護主鍵生成

<id name =“id”column =“id”>

< generator  class =“assigned”/>

</ ID>

2、increment (由hibernate提供的增長機制,先去資料庫查詢最大id,再給你自增)用於long、int、short型別生成唯一標識,在單執行緒的程式中使用(分散式誤用)

<id name =“id”column =“id”>

< generator  class =“increment”/>

</ ID>

3、identity (由資料庫底層提供,不支援Oracle)對DB2、mysql、SQL Server和Sybase等資料庫提供支援。(long、short、int)

<id name =“id”column =“id”>

< generator  class =“identity ”/>

</ ID>

4、sqquence (short、int、long)對DB2、Oracle、postgraSql等支援(Mysql不支援序列)

<id name =“id”column =“id”>

< generator  class =“sqquence ”/>

</ ID>

5、uuid 使用於字串型別的主鍵。使用hibernate中隨機生成的字串(類似java中的uuid)

<id name =“id”column =“id”>

< generator  class =“uuid ”/>

</ ID>

6、native 本地策略,可以在 identity 和 sequence 之間自動切換(比如你選擇了mysql 自動選擇identity。你選擇了Oracle 則自動幫你選擇 sqquence)

<id name =“id”column =“id”>

< generator  class =“native”/>

</ ID>