有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在使用与同一实体相关的@ManyToOne时定义级别

我有一个对象可以是它自己的子对象,它可以生成一个对象树,例如一篇文章可以是许多其他文章的组成部分,因此我使用@ManyToOne将文章与它自己联系起来,由4篇文章组成的树应该是这样的:

第A条(第1级)——>;第B条(第2级)——>;第C条(第3级)——>;D条(第4级)

@Entity
public class Article implements Serializable {

    @ManyToOne
    @JoinColumn(name = "article_father", referencedColumnName = "id")
    private Article articleFather;

    @Column(name = "level")
    private Integer level;

}

现在我的问题是,当我想删除B条之父时,有没有办法用jpa刷新B条、C条和D条的级别,这样我就有了两棵树:

第A条(第1级)

第B条(第1级)——>;第C条(第2级)——>;D条(第3级)


共 (1) 个答案

  1. # 1 楼答案

    如果我是对的,你需要一棵树

    我的例子是:

    @Entity(name = "geography")
    @Table(schema = "TEST", name = "GEOGRAPHY")
    public class Geography {
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private Long id;
    
    @Column(name = "NAME")
    private String name;
    
    @ManyToOne
    @JoinColumn(name = "parent_id")
    @JsonIgnore
    private Geography parent;
    
    @OneToMany(mappedBy = "parent")
    @JsonIgnore
    private Set<Geography> setElements = new HashSet<Geography>();
    ...
    }
    

    级别-家长人数