0
我有一個項目使用JSF primefaces和EJB管理的帶有休眠存儲的Beans。 http://www.primefaces.org/showcase/ui/treeAjax.jsf按需生成primefaces ajax樹?
問題:我一直得到內存不足或堆棧溢出錯誤,你能看到我的遞歸問題嗎?
@ManagedBean(name = "categoryController")
@RequestScoped
public class CategoryController implements Serializable {
...
@EJB
private CategoryFacade ejbFacade;
private TreeNode root;
public TreeNode getRoot() {
return root;
}
@PostConstruct
public void init() {
root = new DefaultTreeNode("Root", null);
System.out.print("Facade value=" + getFacade());
Category categoryRoot = getFacade().find(new Integer(1));
getSubcategories(categoryRoot, root);
}
private void getSubcategories(Category categoryRoot, TreeNode root) {
List<Category> list = getFacade().findByNamedQuery("Category.findByPCatid", "pcatid", categoryRoot);
Iterator<Category> it = list.iterator();
while (it.hasNext()) {
Category subcategory = it.next();
TreeNode nextNode = new DefaultTreeNode(subcategory.getUcatid(), root);
getSubcategories(subcategory, nextNode);
}
}
...
}
您正在陷入無限循環。你確定所有*子類別都沒有曾經是子類別(盛大)父親的(盛大)子女嗎?如果發生這種情況,你會得到一個無限循環。 – RinaldoPJr
有一個根節點的情況,解決了無限循環;謝謝。 – deefactorial
@RinaldoPJr你應該在答案中發表評論,以便OP可以接受它。 –