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

问题描述 投票:0回答:1
@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;

课程=学生课程=学生

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

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

hibernate constraints
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.