我很好奇,需要快速找到这个答案。谷歌不会帮助太多。
Java Persistence API具有这些属性,可以告诉框架对关联实体进行级联操作:
CascadeType.PERSIST
CascadeType.DELETE
CascadeType.MERGE
CascadeType.REFRESH
我知道前两个是什么意思:当我持有有B的对象A时,也坚持B,当我删除A时,也删除B.
但我无法理解其他两个人所取得的成就。帮助
答案 0 :(得分:78)
JPA Annotation Meaning for Many to Many relationships:
我自己这样看待他们(更具可读性):
答案 1 :(得分:71)
REFRESH表示“将任何状态更改从数据库拉到我的表示中”。级联这很简单;这意味着所有关联的实体都会刷新。
MERGE意味着复杂的东西近似“保存”,但更像是“将这个分离的实体推回到托管状态并保存其状态变化”;级联意味着所有关联实体以相同方式被推回,而您从.merge()
返回的托管实体句柄具有与之关联的所有管理实体。