2014-11-22 38 views
2

我的Patientbooking class使用连接表。以下是代码。 Appointment没有Patientbooking带JoinTable的JPA OneToMany删除外键失败

public class Patientbooking implements Serializable { 
    ... 
    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST}) 
    @JoinTable 
    (
     name="patientbooking_appointments", 
     joinColumns={ @JoinColumn(name="patientbooking_id", referencedColumnName="id") }, 
     inverseJoinColumns={ @JoinColumn(name="appointments_id", referencedColumnName="id", unique=true) } 
) 
    private List<Appointment> appointments; 

    ... 
} 

当我删除Appointment时出现此错误。

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`soebala/patientbooking_appointments`, CONSTRAINT `patientbooking_appointments_ibfk_1` FOREIGN KEY (`appointments_id`) REFERENCES `appointments` (`id`)) 

回答

0

由于错误提示您正在执行约束违规。加入您的代码

cascade = {CascadeType.PERSIST, CascadeType.REMOVE})