hibernate 级联删除问题
我做了一个一对多双向关联 做删除的时候报错
java.sql.SQLException: ORA-02292: 违反完整约束条件 (SCOTT.FKCBB) - 已找到子记录
一方
@Entity
@Table(name = "userinfo")
public class UserInfo {
@Id
@GeneratedValue
@Column( name = "id")
private String id;
@Column( name = "name", nullable = true)
private String name;
@Column( name = "sex")
private String sex;
@OneToMany(mappedBy = "userInfo",cascade=CascadeType.REMOVE)
private Set<Orders> orders = new HashSet<Orders>();
多方
@Entity
@Table(name="orders")
public class Orders {
@Id
@GeneratedValue
@Column(name = "orderno",nullable = true)
private String orderno;
@Column(name = "name")
private String name;
@Column(name = "price")
private String price;
@ManyToOne
@JoinColumn(name="customerid")
private UserInfo userInfo;
求解了
------解决方案--------------------你删除的是一方还是多方?
------解决方案--------------------一方那边配个inverse = false
------解决方案--------------------你删除的是一方,你数据库中配了关联的对吧
------解决方案--------------------那肯定要报错啊,你一方和多方之间有关联,然后删除一方的时候与一方关联的数据怎么办
------解决方案--------------------msql 数据库的话,在设计表的时候把是否级联的选成cashcad 就好
------解决方案--------------------
这个问题有两个解决方法(我值知道两个),一是在级联的时候加上cascade,二就是在你删除之前先操作数据库,修改多方与一方级联的那一列的数据