Hibernate中的cascade與inverse
技術分析之級聯的取值(cascade的取值)和孤兒刪除
1. 需要大家掌握的取值如下
* none -- 不使用級聯
* save-update -- 級聯儲存或更新
* delete -- 級聯刪除
* delete-orphan -- 孤兒刪除.(注意:只能應用在一對多關係)
* all -- 除了delete-orphan的所有情況.(包含save-update delete)
* all-delete-orphan -- 包含了delete-orphan的所有情況.(包含save-update delete delete-orphan)
2. 孤兒刪除(孤子刪除),只有在一對多的環境下才有孤兒刪除
* 在一對多的關係中,可以將一的一方認為是父方.將多的一方認為是子方.孤兒刪除:在解除了父子關係的時候.將子方記錄就直接刪除。
* <many-to-one cascade="delete-orphan" />
技術分析之讓某一方放棄外來鍵的維護,為多對多做準備
1. 先測試雙方都維護外來鍵的時候,會產生多餘的SQL語句。
* 想修改客戶和聯絡人的關係,進行雙向關聯,雙方都會維護外來鍵,會產生多餘的SQL語句。
* 產生的原因:session的一級快取中的快照機制,會讓雙方都更新資料庫,產生了多餘的SQL語句。
2. 如果不想產生多餘的SQL語句,那麼需要一方來放棄外來鍵的維護!
* 在<set>標籤上配置一個inverse=”true”.true:放棄.false:不放棄.預設值是false
* <inverse="true">
技術分析之cascade和inverse的區別
1. cascade用來級聯操作(儲存、修改和刪除)
2. inverse用來維護外來鍵的
相關文章
- Hibernate【inverse和cascade屬性】知識要點
- inverse of arc length
- mybatis與hibernate的區別MyBatis
- Hibernate-ORM:13.Hibernate中的連線查詢ORM
- hibernate中的no session問題Session
- Hibernate與mybatis比較MyBatis
- D. Matrix Cascade
- java中Hibernate的環境配置Java
- Hibernate之openSession與getCurrentSession的區別Session
- hibernate中hql查詢
- Hibernate/JPA中@OneToOne和@MapsId的使用
- MyBatis 與 Hibernate 有哪些不同?MyBatis
- JPA與hibernate-------JPA01
- Hibernate中實體類對映檔案表與表的關係模版
- JPA和Hibernate的樂觀鎖與悲觀鎖
- 在Hibernate中關於Oracle sequence的使用KHOracle
- hibernate中多對多關係的維護
- Hibernate中@Struct註解型別Struct型別
- Spring中如何配置Hibernate事務Spring
- Hibernate的基礎
- Hibernate SQL方言 (hibernate.dialect)SQL
- Hibernate中的自動建表及引數作用
- Hibernate
- Hibernate/JPA中避免save()冗餘呼叫
- Hibernate之SchemaExport的使用Export
- Hibernate/JPA中如何合併實體集合?
- Windows下安裝編譯 Open Cascade 7.8.0Windows編譯
- hibernate使用
- Hibernate框架框架
- powercfg /hibernate 是 Windows 作業系統中的一個命令列工具,用來啟用或禁用 休眠(Hibernate) 功能。Windows作業系統命令列
- Hibernate的入門知識
- Hibernate配置檔案中對映元素詳解
- 手寫 Hibernate ORM 框架 00-hibernate 簡介ORM框架
- Hibernate填坑
- hibernate詳解
- Spring 整合 HibernateSpring
- Hibernate配置OracleOracle
- Hibernate 查詢