hibernate注释模式生成多对多OnDelete级联

发布于 12-24 01:11 字数 799 浏览 4 评论 0原文

我有一个使用 hibernate 注释定义的多对多关系,并使用 hbm2ddl 创建我的架构,连接表是使用外键创建的,但我没有设法将“删除级联”操作添加到外键。 我尝试过: @OnDelete(action=OnDeleteAction.CASCADE) 但我得到这个例外:

只有反向一对多关联可以使用 on-delete="cascade"

如果我​​手动将删除级联添加到我的架构中,它可以正常工作。

我正在使用带有 JPA 2.0 和 postgres 8.4 的 hibernate 3.5.3

是否可以添加“删除级联”来连接使用 hbm2ddl 创建的表外键?

更新

ClassA
{
    @OnDelete(action=OnDeleteAction.CASCADE)
    @ManyToMany(targetEntity = ClassB.class)
    @JoinTable(name = "CLASS_A_B", joinColumns = { @JoinColumn(name = "PARENT_CLASS_A") }, inverseJoinColumns = { @JoinColumn(name = "CHILD_CLASS_B_ID") })
    public List<ClassB> getClassBList() {
        if (classBList == null) {
            classBList = new ArrayList<ClassB>();
        }
        return this.classBList;
    }
}

I have a ManyToMany relation defined with hibernate annotations and I create my schema with hbm2ddl, the join table is created with the foreign keys, but I didn't manage to add the 'on delete cascade' action to the foreign keys.
I tried with:
@OnDelete(action=OnDeleteAction.CASCADE)
but I get this exception:

only inverse one-to-many associations may use on-delete="cascade"

If I manually add on delete cascade to my schema it works fine.

I am using hibernate 3.5.3 with JPA 2.0 and postgres 8.4

Is it possible to add 'on delete cascade' to join tables foreign keys create with hbm2ddl ?

Update

ClassA
{
    @OnDelete(action=OnDeleteAction.CASCADE)
    @ManyToMany(targetEntity = ClassB.class)
    @JoinTable(name = "CLASS_A_B", joinColumns = { @JoinColumn(name = "PARENT_CLASS_A") }, inverseJoinColumns = { @JoinColumn(name = "CHILD_CLASS_B_ID") })
    public List<ClassB> getClassBList() {
        if (classBList == null) {
            classBList = new ArrayList<ClassB>();
        }
        return this.classBList;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文