[英]Difference between Hibernate Automatic value generation strategies?
這兩種自動價值生成策略有什么區別?
1. @GeneratedValue
2. @GeneratedValue(strategy=IDENTITY)
如下所示:
AUTO指示持久性提供程序應為特定數據庫選擇適當的策略。
IDENTITY指示持久性提供程序必須使用數據庫標識列為實體分配主鍵。
SEQUENCE指示持久性提供程序必須使用數據庫序列列為實體分配主鍵。
TABLE表示持久性提供程序必須使用基礎數據庫表為實體分配主鍵,以確保唯一性。
在此處參考API http://docs.oracle.com/javaee/5/api/javax/persistence/GenerationType.html
如果未設置strategy屬性,則默認為AUTO
。 從Hibernate文檔中:
AUTO:根據基礎數據庫的功能選擇IDENTITY,SEQUENCE或TABLE。
區別在於@GeneratedValue使用AUTO策略作為默認策略,而@GeneratedValue(strategy = IDENTITY)使用IDENTITY策略
這是策略的不同選擇
AUTO-指示持久性提供程序應為特定數據庫選擇適當的策略。
IDENTITY-表示持久性提供程序必須使用數據庫標識列為實體分配主鍵。
SEQUENCE-指示持久性提供程序必須使用數據庫序列列為實體分配主鍵。
TABLE-表示持久性提供程序必須使用基礎數據庫表為實體分配主鍵,以確保唯一性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.