我正在使用Hibernate来管理Java应用程序中的持久性。我得到了在A端定义的实体A和B之间的ManyToMany关系(A有一个B的集合)。
当我从表B中删除一个对象时,我希望它也从实体A的集合中删除。但是,我不知道如何在Hibernate中定义JoinTable中的外键必须是"on delete cascade“。
如果有人能帮我,我将不胜感激。
编辑:代码示例:
@Entity
public class A {
@ManyToMany
@JoinTable(name = "aToB", joinColumns = { @JoinColumn(name = "aFk") }, inverseJoinColumns = { @JoinColumn(name = "bFk") })
public Collection<B> getBs() { ... }
public void setBs(Collection<B> bs) { ... }
}当我查看我的数据库时,表aToB是通过以下命令创建的:
CREATE TABLE aToB
(
afk integer NOT NULL,
bfk integer NOT NULL,
CONSTRAINT aToB_pkey PRIMARY KEY (afk , bfk ),
CONSTRAINT fk156d338f71d2c983 FOREIGN KEY (afk)
REFERENCES a (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk156d338fa35ac77c FOREIGN KEY (bfk)
REFERENCES b (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)我实际上在bfk上对外键有什么"ON DELETE CASCADE“。
发布于 2013-02-15 21:01:03
注释@层叠( CascadeType.DELETE)
您的集合的XML映射文件删除“cascade=”
https://stackoverflow.com/questions/14895166
复制相似问题