首页 > 解决方案 > 如何为扩展父编号的树实体对象编号?

问题描述

我有一个项目实体

@Entity
public class Item {

  @Id
  private Long id;

  @ManyToOne
  private Item parentItem;

  private String name;

  private String number;

  // getters & setters

}

我想要一个生成具有以下规则的数字的函数:

标签: javahibernatejparecursion

解决方案


只需遍历(从叶到根)树并连接数字:

@Entity
public class Item {

  @Id
  private Long id;

  @ManyToOne
  private Item parentItem;

  private String name;

  private String number;

  String getHierarchy(){
    return this.parentItem != null ? 
             this.parentItem.getHierarchy() + " . " + this.number :
             this.number
  }

}

推荐阅读