package org.exitsoft.showcase.vcsadmin.entity.foundation; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Transient; import org.exitsoft.showcase.vcsadmin.entity.UniversallyUniqueIdentifier; /** * 字典类别实体 * * @author vincent * */ @Entity @SuppressWarnings("serial") @Table(name="TB_DICTIONARY_CATEGORY") public class DictionaryCategory extends UniversallyUniqueIdentifier{ //名称 private String name; //代码 private String code; //备注 private String remark; //拥有数据字典 private List<DataDictionary> dataDictionariesList = new ArrayList<DataDictionary>(); //拥有叶子节点 private List<DictionaryCategory> children = new ArrayList<DictionaryCategory>(); //对应父类 private DictionaryCategory parent; public DictionaryCategory() { } /** * 获取名称 * * @return String */ @Column(length=256,nullable=false) public String getName() { return name; } /** * 设置名称 * * @param name 名称 */ public void setName(String name) { this.name = name; } /** * 获取代码 * * @return String */ @Column(length=128,nullable=false,unique=true) public String getCode() { return code; } /** * 设置代码 * * @param code 代码 */ public void setCode(String code) { this.code = code; } /** * 获取备注 * * @return String */ @Column(columnDefinition="text") public String getRemark() { return remark; } /** * 设置备注 * @param remark */ public void setRemark(String remark) { this.remark = remark; } /** * 获取拥有的数据字典集合 * * @return List */ @OneToMany(fetch=FetchType.LAZY,mappedBy="category",cascade={CascadeType.ALL}) public List<DataDictionary> getDataDictionariesList() { return dataDictionariesList; } /** * 设置拥有的数据字典集合 * * @param dataDictionariesList 数据字典集合 */ public void setDataDictionariesList(List<DataDictionary> dataDictionariesList) { this.dataDictionariesList = dataDictionariesList; } /** * 获取所有叶子节点 * * @return List */ @OneToMany(fetch=FetchType.LAZY,mappedBy="parent",cascade={CascadeType.ALL}) public List<DictionaryCategory> getChildren() { return children; } /** * 设置叶子节点 * * @param children 叶子节点 */ public void setChildren(List<DictionaryCategory> children) { this.children = children; } /** * 获取父类节点 * * @return {@link DictionaryCategory} */ @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "FK_PARENT_ID",columnDefinition="char(32)") public DictionaryCategory getParent() { return parent; } /** * 设置父类节点 * * @param parent 父类节点 */ public void setParent(DictionaryCategory parent) { this.parent = parent; } /** * 获取当前实体是否是为根节点,如果是返回ture,否则返回false * * @return boolean */ @Transient public Boolean getLeaf() { return this.children != null && this.getChildren().size() > 0; } /** * 获取父类名称 * * @return String */ @Transient public String getParentName() { return this.parent == null ? "" : this.parent.getName(); } /** * 获取父类ID * * @return String */ @Transient public String getParentId() { return this.parent == null ? "" : this.parent.getId(); } }