java技术

hibernate spring struts

BlogJava 联系 聚合 管理
  18 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

2010年11月9日 #

     摘要: 一、软件(利器) 1.1 Everything Everything可以快速的搜索你本地硬盘(仅支持NTFS格式)的所有文件,速度秒杀一切工具,缺点就是只能根据文件名来搜索,不能根据内容来(这个Google Desktop Search也不太好用),但是这已经足够了。 详情请 via 善用佳软-Everything:速度最快的文件名搜索工具 。 Tip...  阅读全文
posted @ 2012-03-31 11:09 just 阅读(444) | 评论 (0)编辑 收藏

1.decode(value,if1,then1,if2,then2,if3,then3,.....,else)
如果value等于if1时,DECODE函数的结果返回then1,....,如何不等于任何一个if值,则返回else
2.sign(变量1-变量2)
如果(变量1-变量2)大于0返回1,小于0返回-1,等于0返回0
3.COALESCE (expression_1, expression_2, ...,expression_n)
列表中第一个非空的表达式是函数的返回值,如果所有的表达式都是空值,最终将返回一个空值。
posted @ 2011-09-16 11:32 just 阅读(228) | 评论 (0)编辑 收藏

A和B是一对多的关系,在做更新操作的时候做如下动作:

A = dao.read(id);
List<B> bList = A.getBList();
bList.clear();

B b1 = new B();
b1.setA(A);
bList.add(b1);

B b2 = new B();
b2.setA(A);
bList.add(b2);

A.
posted @ 2010-11-10 19:19 just 阅读(329) | 评论 (0)编辑 收藏

比如我们现在有一个Parent的实体,在Parent实体当中有一个children的Set
由于这个children的数据并非非常重要,为了方便,我们在修改parent的时候,做法经常都是
1,清空children全部删了,再把新的children全部加进去。
今天早上做这一方面工作的时候遇到一个问题,就是在更新parent的时候,报了一个
Don't dereference a collection with cascade="all-delete-orphan"
的异常,经常一半个小时的查资料和调试,终于找到了解决问题的办法
刚刚开始我的做法为:
parent = parentService.findParentById(id);
parent.getChildren.clear();
parent.setChildren(newChildren);
parentService.updateparent(parent);
这样做一定会报出一个Don't dereference a collection with cascade="all-delete-orphan"的异常
原来是,对于parent的children这个Set,它本身是一个持久的集合,该集合存在于hibernate的对象池当中,通过
parent.setChildren(newChildren)的设置之后,本身已经将parent对children集合的引用指到对象池外的一个集合。
后来查询资料后的做法为:
parent = parentService.findParentById(id);
parent.getChildren.clear();
parent.getChildren.addAll(newChildren);
parentService.updateparent(parent);
做了几次测试,问题解决。
hbm配置如下:
<set lazy="true" name="children" cascade="all,delete-orphan" inverse="true">
   <key column="PARENT_ID"/>
   <one-to-many class="Child"/>
</set>
另外,hibernate 3已经将cascade当中的选项做了修改,现在已经没有了all-delete-orphan这个选项,虽然hibernate
内部还是支持这个选项……

posted @ 2010-11-09 16:30 just 阅读(1883) | 评论 (0)编辑 收藏