Hibernate中存取数据 - 中的Set问题

本文探讨了在JBoss Portal环境下,使用Hibernate进行多对一及一对多关系映射时遇到的问题。主要关注XML配置文件中<one-to-many>标签的使用,并详细记录了一个具体的案例,包括配置文件片段与递归遍历子节点的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

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

其对应的配置文件如下:

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





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

 

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

癞蛤蟆的左眼 2007-01-08 13:09 发表评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值