首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Hibernate继承模型使OnDelete级联工作

问如何使用Hibernate继承模型使OnDelete级联工作
EN

Stack Overflow用户
提问于 2019-08-26 15:42:02
回答 1查看 55关注 0票数 2

父级:

代码语言:javascript
复制
@Entity  
@Table(name = "Parent")  
@Inheritance(strategy=InheritanceType.JOINED)
public class Parent {
    @Id  
    @GeneratedValue(strategy=GenerationType.AUTO)  
    @Column(name = "id")  
    protected int id;  
    //some code here
}

Child1:

代码语言:javascript
复制
@Entity  
@Table(name="Child1")   
@PrimaryKeyJoinColumn(name="id")
@OnDelete(action = OnDeleteAction.CASCADE)
public class Child1 extends Parent {
        //some code here
}

我使用Hibernate Mapping在MySQL中制作表格。我对Hibernate完全是新手。正如我前面提到的@PrimaryKeyJoinColumn注释一样,表正在创建,而且子表也有一个引用父表id的外键。在子表中添加字段也会在父表扩展时将其添加到父表中。但是删除父表中的行并不会删除子表中的行。也许我在这里的某个地方采取了错误的方法。我的最终目标是扩展父表,并使用子表向其中添加记录。我需要一些指点。也许是其他的注解,一些其他的方法来实现这个目标。

EN

回答 1

Stack Overflow用户

发布于 2020-01-14 13:47:42

我通过将ON DELETE CASCADE添加到子表的外键解决了这个问题。

参考:https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html

示例:

代码语言:javascript
复制
CREATE TABLE parent (
    id INT NOT NULL,
    PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child (
    id INT,
    parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id)
        REFERENCES parent(id)
        ON DELETE CASCADE
) ENGINE=INNODB;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57653662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档