首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Hibernate 核心操作實戰:delete/insert/update 實體生命周期管理

     編輯:Java 綜合教學

Session 核心方法對照

操作方法狀態轉換SQL 時機
保存save()/persist()Transient → Persistentflush/commit 時 INSERT
刪除delete()/remove()Persistent → Removedflush/commit 時 DELETE
更新update()/merge()Detached → Persistentflush/commit 時 UPDATE
保存或更新saveOrUpdate()自動判斷 ID 存在性INSERT 或 UPDATE

關鍵區別

  • save():立即賦予 ID,返回生成標識符
  • persist():JPA 標準,不保證立即生成 ID
  • update():要求對象在數據庫存在,否則拋異常
  • merge():不存在則 INSERT,存在則 UPDATE,返回新管理實例

級聯操作

@OneToMany(cascade = CascadeType.ALL)  // 包含 PERSIST, MERGE, REMOVE, REFRESH, DETACH
private Set<Child> children;

批量操作優化

  • hibernate.jdbc.batch_size:啟用批量 INSERT/UPDATE
  • hibernate.order_inserts/updates:排序減少語句切換
  • 無狀態 Session (StatelessSession):繞過一級緩存,適合大數據導入

圖示說明

圖片展示了實體狀態流轉、級聯持久化、批量處理等核心場景的時序與關係圖。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved