父级:
@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的外键。在子表中添加字段也会在父表扩展时将其添加到父表中。但是删除父表中的行并不会删除子表中的行。也许我在这里的某个地方采取了错误的方法。我的最终目标是扩展父表,并使用子表向其中添加记录。我需要一些指点。也许是其他的注解,一些其他的方法来实现这个目标。
发布于 2020-01-14 13:47:42
我通过将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;https://stackoverflow.com/questions/57653662
复制相似问题