Saudações a todos…
Estou tendo problemas para construir uma tree com richfaces de forma que ela seja montada recursivamente, e sem limite de níveis.
Tenho uma classe (CentroCusto) que referencia ela mesma:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="centro_custo_pai", nullable=true)
private CentroCusto ccPai = null;
@OneToMany(mappedBy = "ccPai", cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
private Collection<CentroCusto> filhos;
Aí no meu ManagedBean, eu tenho um método que retorna todos os nós raiz, ou seja, aqueles que não tem pai:
List<CentroCusto> list = dao.findByCriteria(Restrictions.isNull("ccPai"));
O código que faz esta busca não tem nenhum problema, já testei várias vezes.
O problema é que minha árvore no richfaces não retorna todos os dados:
<h:form>
<rich:tree id="treeTestTree" switchType="ajax" ajaxSingle="true">
<rich:recursiveTreeNodesAdaptor id="treeTestRecursiveTreeNodesAdaptor"
roots="#{centroCustoFace.centrosCustoRaiz}" var="node"
nodes="#{treeTest.filhos}">
<rich:treeNode data="#{node.id}">
<h:outputText value="#{node.descricao}" />
</rich:treeNode>
</rich:recursiveTreeNodesAdaptor>
</rich:tree>
</h:form>
Ela se limita a exibir somente os nós raiz e mais um nível. Não está fornecendo o comportamento recursivo.
Alguém sabe me informar se eu esqueci de alguma coisa?? O que mais precisa pra esta árvore percorrer a Collection que o Hibernate retornou no método getFilhos() ???
Muito obrigado