在JPA中請優先使用sequence策略生成實體識別符號的值 - Vlad Mihalcea
使用資料庫sequence是最有效的Hibernate識別符號/主鍵生成策略,因為能利用自動JDBC批處理機制。
註釋實體使用@Id和@GeneratedValue,@Id是強制性的,@Id必須被對映到具有唯一約束的表列。通常,@Id註釋應對映到“主鍵”表列。
如果不使用@GeneratedValue註釋,必須手工賦值實體識別符號,而使用@GeneratedValue由JPA自動生成實體表示符時,需要一些策略。
public class Post { @Id @GeneratedValue( strategy = GenerationType.SEQUENCE ) private Long id; |
GenerationType列舉定義了四個實體識別符號生成策略:
- IDENTITY允許使用表標識列,例如MySQL AUTO_INCREMENT。對於JPA和Hibernate,如果關聯式資料庫支援SEQUENCE(下面的第二種),則應該優先使用SEQUENCE而不是IDENTITY,因為在使用IDENTITY生成器持久儲存實體時,Hibernate無法使用自動JDBC批處理。
- SEQUENCE允許使用資料庫序列物件生成識別符號值。當使用JPA和Hibernate時,這是最佳的生成策略。
- TABLE使用單獨的表模擬資料庫序列生成器。這是一個糟糕的策略,您不應該使用它。
- AUTO 根據基礎資料庫功能選擇任何先前的策略。
具體點選標題見原文
相關文章
- 使用JPA和Hibernate延遲載入實體屬性的最佳方法 - Vlad Mihalcea
- 使用JPA和Hibernate呼叫儲存過程的最佳方法 - Vlad Mihalcea儲存過程
- vit中的生成分類識別符號介紹符號
- 使用DataSource-Proxy在Spring Boot中記錄SQL語句 - Vlad MihalceaSpring BootSQL
- 批處理最佳實踐 - Vlad Mihalcea
- 使用 Spring Transactional 註釋的最佳方式 - Vlad MihalceaSpring
- js如何生成唯一識別符號UUIDJS符號UI
- 識別符號符號
- 使用去中心化識別符號 (DID) 作為識別符號元系統中心化符號
- python的識別符號Python符號
- 列舉型別在JPA中的使用型別
- <Python>識別符號、變數的定義與使用Python符號變數
- go——識別符號的命名規範Go符號
- Java資料型別、識別符號Java資料型別符號
- Python中的識別符號有哪些基礎原則?Python符號
- COBOL六十週年紀念:過去,現在和未來 -Vlad Mihalcea
- 如何生成分散式唯一時間戳識別符號 - vanillajava分散式時間戳符號Java
- 使用FlexyPool度量你的XA事務連線池合適大小 - Vlad MihalceaFlex
- C語言-識別符號命名C語言符號
- 識別符號與關鍵字符號
- java基本無法-識別符號Java符號
- C++ 提示未宣告的識別符號C++符號
- .vue檔案中style標籤的幾個識別符號Vue符號
- 物體識別桌在展廳中的應用優勢
- 如何啟用Hibernate慢查詢日誌? -Vlad Mihalcea
- SQL 搜尋方法或鍵集分頁 - Vlad MihalceaSQL
- AppID 的英文全稱是 Application Identifier AppID(應用程式識別符號)GUID(全域性唯一識別符號)APPIDE符號GUI
- python:LEGB識別符號解析順序Python符號
- SCSS &父選擇器識別符號CSS符號
- URI(統一資源識別符號)符號
- 字串切片識別符號是什麼字串符號
- JavaSE 關鍵字和識別符號Java符號
- 1413: C語言合法識別符號C語言符號
- 簡單介紹Go 中的空白識別符號下劃線Go符號
- 識別符號的命名規則和規範符號
- Java的識別符號與編碼規範Java符號
- 關鍵字、資料型別、識別符號資料型別符號
- &符號在sed命令中使用符號