父母:
@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:
@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的外键。 在子表中添加字段还会将其扩展到父表中。 但是删除父表中的行不会删除子表中的行。 也许我在某处采取了错误的方法。 我的最终目标是扩展父级,并使用子表向其添加记录。 我需要一些指示。也许有其他注释,也有实现目标的其他方法。
答案 0 :(得分:0)
我通过在子表的外键中添加 ON DELETE CASCADE
来解决此问题。
引用:https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html
示例:
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;