SSH级联操作报错:org.hibernate.exception.ConstraintViolationException: Could not execute


SSH整合过程中,删除具有外键的记录时报错:

spring4+hibernate4

org.hibernate.exception.ConstraintViolationException: Could not execute 

因为有外键约束,所以报错。

两个表的关系为基于外键的双向1-1关联

A表主键  为 B表的外键

//设置级联属性CascadeType为删除,当删除A表记录时,自动删除B表中具有A外键的记录
@OneToOne(targetEntity=B.class, mappedBy="B", cascade=CascadeType.REMOVE)
private B  b;
//省略 setter、getter方法

B表对应实体

//设置级联属性CascadeType为持久化和刷新,当删除B表记录时,不会删除A表中对应的记录,但是更新B表会刷新A表对应记录
@OneToOne(targetEntity=A.class,cascade={CascadeType.PERSIST,CascadeType.REFRESH})
//映射a_id外键列,参照a表中的a_id列
@JoinColumn(name="a_id", referencedColumnName="a_id", unique=true)
private A a;

 
 


你可能感兴趣的:(ssh)