Hibernate主鍵增長策略
阿新 • • 發佈:2018-12-31
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>