1. 程式人生 > >hibernate CascadeType屬性說明

hibernate CascadeType屬性說明

調用 obj let 裏的 pda per cad fresh all

cascade屬性: 指定級聯操作的行為(可多選)

  • CascadeType.PERSIST 級聯新增(又稱級聯保存):

獲取A對象裏也同時也重新獲取最新的B時的對象。即會重新查詢數據庫裏的最新數據,並且,只有A類新增時,會級聯B對象新增。若B對象在數據庫存(跟新)在則拋異常(讓B變為持久態),對應EntityManager的presist方法,調用JPA規範中的persist(),不適用於Hibernate的save()方法

  • CascadeType.MERGE 級聯合並(又稱級聯更新)

指A類新增或者變化,會級聯B對象(新增或者變化) ,對應EntityManager的merge方法,調用JPA規範中merge()時,不適用於Hibernate的update()方法

  • CascadeType.REMOVE 級聯刪除

只有A類刪除時,會級聯刪除B類,即在設置的那一端進行刪除時,另一端才會級聯刪除,對應EntityManager的remove方法,調用JPA規範中的remove()時,適用於Hibernate的delete()方法

  • CascadeType.REFRESH 級聯刷新

獲取order(一或多)對象裏也同時也重新獲取最新的items(多)的對象,對應EntityManager的refresh(object),調用JPA規範中的refresh()時,適用於Hibernate的flush()方法

  • CascadeType.ALL

包含所有持久化方法
綜上:大多數情況用CascadeType.MERGE就能達到級聯跟新又不報錯,用CascadeType.ALL時要斟酌下CascadeType.REMOVE

hibernate CascadeType屬性說明