@ManyToMany允许在不应该删除时删除。约束违规

时间:2013-09-30 16:39:52

标签: hibernate constraints

@ManyToMany(targetEntity = AlunoTO.class, fetch=FetchType.EAGER)
@JoinTable(name = "TRE_ALUNO_CURSO", joinColumns= @JoinColumn(name ="id_curso"),     inverseJoinColumns = @JoinColumn(name = "id_aluno"))
private Set<AlunoTO> alunos;

@ManyToMany(targetEntity = CursoTreinamentoTO.class)
@JoinTable(name ="TRE_ALUNO_CURSO", joinColumns = @JoinColumn(name ="id_aluno"), inverseJoinColumns= @JoinColumn(name ="id_curso") )
private Set<CursoTreinamentoTO> cursos;

Curso =课程 Aluno =学生

所以这就是我对@ManyToMany进行注释的方式。我的问题是,当theres仍然是与之相关的学生时,我不能删除课程,但是hibernate让我删除该注册表而没有任何警告或错误。哦,是的,我已经尝试过只在一边做joinColluns而在另一边做mappedBy但是仍然不起作用。

为什么我可以删除违反fk的课程?我的注释有什么问题吗?

1 个答案:

答案 0 :(得分:0)

您无法在映射中执行此操作,因为它非常不标准。首先,如果发出delete语句,则需要删除一行,或者报告一个SQL异常。如果您想有条件地不删除该行,则必须在业务逻辑中实现该行。