我有点困惑,因为我不能强制 Hibernate 删除连接表中的行。可能我需要配置一些不同的东西。
我有一个表 Component 和 Task 以及一个连接它们 Component_Tasks 的表。在我的课堂组件中,我有:
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "Component_Tasks",
joinColumns = @JoinColumn(name = "ComponentID"), inverseJoinColumns = @JoinColumn(name = "TaskID"))
public List<Task> getTasks() {
return tasks;
}
在我的课堂任务中,我有
@ManyToOne
@JoinColumn(name = "ComponentID")
public Component getComponent() {
return component;
}
我想要的是,当我删除任务时,我默认删除 Component_Tasks 表中的下划线行。基本上我的删除因为外键关系而失败
ALTER TABLE Component_Tasks ADD FOREIGN KEY (TASKID) REFERENCES Tasks (ID);
我相信如果我将任务中的组件设置为 null 然后我保存对象然后尝试删除它,我可以实现相同的行为。但我希望 Hibernate 默认执行此操作。
有什么建议么?