簡體   English   中英

Hibernate自動值生成策略之間的區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM