java-数据库中的Primefaces树
作者:互联网
我有以下实体类:
@Entity
@Table(name = "THE_TREE", catalog = "", schema = "dbo")
public class TheTree implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "NODE_NAME")
private String name;
@Column(name = "LEVEL")
private int level;
@OneToMany
@JoinColumn(name="PARENTID")
public List<TheTree > children = new LinkedList<TheTree >();
我想将其表示为素数树,但我做对了.在primefaces网站中给出的示例具有预定义深度的静态节点,在这里我需要深度未知的节点并要从数据库中填充.我在这里看到过各种帖子,但我不清楚.在该post中,作者似乎提出了相同的问题,但答案与问题无关.任何解决方案将不胜感激.
解决方法:
您必须创建一个递归函数来制作树.这就是我要做的:
@ManagedBean
@ViewScoped
public class TreeMBean {
private TreeNode rootNode;
@PostConstruct
public void init() {
TheTree root = new TheTree(); // instead get root object from database
rootNode = newNodeWithChildren(root, null);
}
/**
* recursive function that returns a new node with its children
*/
public TreeNode newNodeWithChildren(TheTree ttParent, TreeNode parent){
TreeNode newNode= new DefaultTreeNode(ttParent, parent);
for (TheTree tt : ttParent.getChildren()){
TreeNode newNode2= newNodeWithChildren(tt, newNode);
}
return newNode;
}
public TreeNode getRootNode() {
return rootNode;
}
public void setRootNode(TreeNode node) {
rootNode = node;
}
}
标签:java,tree,primefaces 来源: https://codeday.me/bug/20191009/1878618.html