ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

java-数据库中的Primefaces树

2019-10-09 10:11:33  阅读:210  来源: 互联网

标签:java tree 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有