Java 如何使用Hibernate继承模型使OnDelete级联工作
家长:Java 如何使用Hibernate继承模型使OnDelete级联工作,java,mysql,hibernate,hibernate-mapping,Java,Mysql,Hibernate,Hibernate Mapping,家长: @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 } 儿童1:
@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
}
儿童1:
@Entity
@Table(name="Child1")
@PrimaryKeyJoinColumn(name="id")
@OnDelete(action = OnDeleteAction.CASCADE)
public class Child1 extends Parent {
//some code here
}
我正在使用Hibernate映射在MySQL中创建表。
我对冬眠是完全陌生的。正在创建表,并且子表有一个外键,它引用父表id,正如我提到的@PrimaryKeyJoinColumn注释。
在子表中添加字段也会在扩展时将其添加到父表中。
但删除父表中的行不会删除子表中的行。
也许我在某个地方走错了路。
我的最终目标是扩展父表,并使用子表向其添加记录。
我需要一些指针。可能是其他注释,或者其他实现目标的方法。我通过在子表的外键中添加DELETE CASCADE上的
解决了这个问题
参考:
例如:
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;