我有两张桌子
议程
@Entity
@Table (name = "agenda")
public class Agenda {
@Id
@GeneratedValue
private int idAgenda;
@OneToMany(orphanRemoval=true,cascade = CascadeType.REMOVE)
private List<Consulta> consultas;
}
和
@Entity(name = "Consulta")
public class Consulta {
@Id
@GeneratedValue
private int idConsulta;
@Column
private Calendar dataConsultas;
@Column
private Time hora;
@ManyToOne
private Paciente paciente;
@OneToOne
private Colaborador colaborador;
}
当我运行java时,它创建了第三个名为:agenda consulta的表。当我试图删除桌上的咨询时,咨询&#39;我这样做:
em.getTransaction().begin();
em.remove(consulta);
em.getTransaction().commit();
但有错误导致外国人。这是怎么回事?
答案 0 :(得分:0)
您正在尝试删除仍由议程引用的咨询。所以外键约束禁止你这样做,因为它会使数据库不连贯。
确保在删除之前删除对Consulta的引用,找到包含此咨询的议程,并从议程的咨询列表中删除咨询。