@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@Fetch(FetchMode.SUBSELECT)
@JoinColumn(name = "ORU_OAUTH_ID", nullable = false)
@OrderBy("ORU_ORDER ")
private List<RedirectedURLs> acceptedReturnUrls;
答案 0 :(得分:3)
级联删除
使用CascadeType.REMOVE(或CascadeType.ALL)标记引用字段, 其中包括REMOVE)表示删除操作应该是 自动级联到由其引用的实体对象 字段(集合可以引用多个实体对象) 场):
@Entity class Employee { : @OneToOne(cascade=CascadeType.REMOVE) private Address address; : }
孤儿删除
JPA 2支持额外且更积极的删除级联模式,可以使用orphanRemoval元素指定 @OneToOne和@OneToMany注释:
@Entity class Employee { : @OneToOne(orphanRemoval=true) private Address address; : }
<强>区别: - 强>
两个设置之间的区别在于断开关系的响应。例如,例如设置时 地址字段为null或另一个Address对象。
如果指定了orphanRemoval = true,则会自动删除已断开连接的Address实例。这对清理很有用 在没有a的情况下不应该存在的依赖对象(例如地址) 来自所有者对象(例如员工)的引用。
如果仅指定了cascade = CascadeType.REMOVE,则不会执行自动操作,因为断开关系不是删除 操作
(级联删除和删除是同义词)
来自here。