@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;
Run Code Online (Sandbox Code Playgroud)
小智 3
级联删除
使用 CascadeType.REMOVE(或 CascadeType.ALL,其中包括 REMOVE)标记引用字段表示删除操作应自动级联到该字段引用的实体对象(一个集合字段可以引用多个实体对象):
Run Code Online (Sandbox Code Playgroud)@Entity class Employee { : @OneToOne(cascade=CascadeType.REMOVE) private Address address; : }
孤儿剔除
JPA 2 支持额外的、更积极的删除级联模式,可以使用 @OneToOne 和 @OneToMany 注释的 orphanRemoval 元素来指定:
Run Code Online (Sandbox Code Playgroud)@Entity class Employee { : @OneToOne(orphanRemoval=true) private Address address; : }
不同之处:-
两种设置之间的区别在于对断开关系的响应。例如,将地址字段设置为空或另一个地址对象时。
如果指定了orphanRemoval=true,则自动删除断开连接的Address 实例。这对于清理依赖对象(例如地址)非常有用,如果没有所有者对象(例如员工)的引用,这些对象就不应存在。
如果仅指定cascade=CascadeType.REMOVE,则不会执行自动操作,因为断开关系不是删除操作。
(级联删除和删除是同义词)
从这里。
归档时间: |
|
查看次数: |
4124 次 |
最近记录: |