/** * Copyright © 2015-2020 JeePlus All rights reserved. */ package com.jeeplus.common.persistence; import javax.validation.constraints.NotNull; import org.hibernate.validator.constraints.Length; import com.fasterxml.jackson.annotation.JsonBackReference; import com.jeeplus.common.utils.Reflections; import com.jeeplus.common.utils.StringUtils; /** * 数据Entity类 * @author jeeplus * @version 2014-05-16 */ public abstract class TreeEntity extends DataEntity { private static final long serialVersionUID = 1L; protected T parent; // 父级编号 protected String parentIds; // 所有父级编号 protected String name; // 机构名称 protected Integer sort; // 排序 public TreeEntity() { super(); this.sort = 30; } public TreeEntity(String id) { super(id); } /** * 父对象,只能通过子类实现,父类实现mybatis无法读取 * @return */ @JsonBackReference @NotNull public abstract T getParent(); /** * 父对象,只能通过子类实现,父类实现mybatis无法读取 * @return */ public abstract void setParent(T parent); @Length(min=1, max=2000) public String getParentIds() { return parentIds; } public void setParentIds(String parentIds) { this.parentIds = parentIds; } @Length(min=1, max=100) public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getSort() { return sort; } public void setSort(Integer sort) { this.sort = sort; } public String getParentId() { String id = null; if (parent != null){ id = (String)Reflections.getFieldValue(parent, "id"); } return StringUtils.isNotBlank(id) ? id : "0"; } }