坐井观天

用左眼看头顶的这一块天
posts - 4, comments - 3, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

环境:jboss-portal + jsp + Hibernate + MySQL。

下面的代码貌似对我有所帮助,现在问题聚焦在xml配置文件中使用定义<one- to many>的Set,
Set set = getSubSubjects();
只要在jsp中使用到set就会报错,而且jboss中的控制台显示是由于jasperExeption引起的,没有显示Hibernate的错误信息。

我和下面代码的不同之处是级联的设置:cascade= "delete - all -dophin" !

也许问题就是出在这里,下午过去测试一下便知了。

------------------------------------------------------------

Node对象中包含以下两个属性,
 

private  Node parent;  // 父对象
private  Set children  =   new  HashSet();  // 孩子集合

其对应的配置文件如下:

 1 < many-to-one
 2              name ="parent"
 3             class ="com.norteksoft.bom.model.Node"
 4             cascade ="none"
 5             outer-join ="auto"
 6             column ="FK_NODE_ID"
 7          />
 8
 9          < set
10              name ="children"
11             lazy ="true"
12             cascade ="all"
13             sort ="unsorted"
14          >
15
16                < key
17                    column ="FK_NODE_ID"
18                >
19                </ key >
20
21                < one-to-many
22                    class ="com.norteksoft.bom.model.Node"
23                />
24
25          </ set >
26
27





      下面是如何使用的代码,当然会用到递归:

 

 1   /**
 2    * 查询所有孩子节点
 3    * @param node Node
 4    * @param list List
 5    * @return List
 6    */
 7   public List findAllChildrenNodes(Node node, List list) {
 8     if (node.getChildren().size() == 0) {
 9       return list;
10     } else {
11       for (Iterator it = node.getChildren().iterator(); it.hasNext(); ) {
12         Node theNode = (Node) it.next();
13         list.add(theNode);
14         findAllChildrenNodes(theNode, list);
15       }
16
17       return list;
18     }
19   }
20
21

只有注册用户登录后才能发表评论。


网站导航: