小编Ali*_*i B的帖子

Hibernate @OnDelete级联相同的表

我正在尝试创建一个捕获父子关系的表,如树.我想只保留两列来捕获这个结构"id"和"parent".我希望数据库能够在删除行时级联删除所有子项.下面是我创建的Hibernate实体,@OnDelete(action = OnDeleteAction.CASCADE)但是我添加了注释,但是ON DELETE CASCADE当Hibernate创建表时,没有添加到表中.

这是一个错误吗?或者有什么我缺少或不理解?

@Entity
public class Tree {

    @Id
    @Column(name = "id", nullable = false)
    private Long id;

    @OneToMany(fetch = FetchType.EAGER)
    @JoinColumn(name = "parent", nullable = true)
    private List<Tree> children;

    @ManyToOne
    @OnDelete(action = OnDeleteAction.CASCADE)
    @JoinColumn(name = "parent", nullable = false)
    private Tree parent;

    public Tree(Long id) {
        this.id = id;
    }

    public Tree() {
    }

    public Long getId() {
        return id;
    }

    protected void setId(Long id) {
        this.id = id;
    }

    public List<Tree> …
Run Code Online (Sandbox Code Playgroud)

hibernate cascade cascading-deletes jpa-2.0 hibernate-cascade

2
推荐指数
1
解决办法
2809
查看次数