【发布时间】:2012-12-21 23:56:39
【问题描述】:
我有点困惑,因为我无法强制 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 默认执行此操作。
有什么建议吗?
【问题讨论】:
标签: hibernate one-to-many many-to-one cascading-deletes