hibernate级联删除操作

环境:Hibernate 4.1.3.Final 、JPA
三个类:User、Album、Work;
关系是user对Album一对多,Album对work一对多;
目标是Album级联删除work,但删除work的时候、不能删除掉album;类推;

我写如下代码,用了@OneToMany、@ManyToOne、mappedBy
user对Album一对多:
在User类
@OneToMany(cascade=CascadeType.ALL ,fetch = FetchType.EAGER,mappedBy="user")
public Set<Album> getAlbums() {
return albums;
}
在Album类
@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.REFRESH)
public User getUser() {
return user;
}

Album对work一对多;
在Album:
@OneToMany(cascade=CascadeType.ALL ,fetch = FetchType.EAGER,mappedBy="album")
public Set<Work> getWorks() {
return works;
}
在Work:
@ManyToOne(fetch = FetchType.EAGER,cascade = CascadeType.REFRESH)
public Album getAlbum() {
return album;
}

状况:删除work的时候,只删除work,不触发其它事件;但删除album的时候,它要求“从关系中移除将被删除的对象” 就是报:deleted object would be re-saved by cascade (remove deleted object from associations)


原网址: http://www.dewen.io/q/15338


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值