当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 当你显式的使用session.save()或者session.update()操作一个对象的时候,实际上是用不到unsaved-value的。
 

 

 ·部分搜索引擎免费登陆口    »显示摘要«
    摘要:部分搜索引擎登陆口百度免费登录入口 http://www.baidu.com/search/url_submit.htm 新浪免费登录入口 http://bizsite.sina.com.cn/newbizsite/docc/index-2jifu-09.htm 搜狐免费登录入口http://db.sohu.com/regurl/regform.asp?step=regform&class......
 ·tms320c54x芯片介绍    »显示摘要«
    摘要: tms320c54x芯片介绍 1. 概述 ti公司在原来已被人们熟知的tms320c1x、tms320c25、tms320c3x/4x、tms320c5x、tms320c8x的基础上发展了三种新的dsp系列,它们是:tms320c2000、tms320c5000、tms320c6000系列,成为当前和未来相当长时期内ti dsp的主流产品,前面提到的那些老型号产品均将被这三种新系列产品替代......


关于unsaved-value
当你显式的使用session.save()或者session.update()操作一个对象的时候,实际上是用不到unsaved-value的.某些情况下(父子表关联保存),当你在程序中并没有显式的使用save或者update一个持久对象,那么hibernate需要判断被操作的对象究竟是一个已经持久化过的持久对象,是一个尚未被持久化过的内存临时对象.例如:

【程序编程相关:颜色调配用的参考,有兴趣可以看看

【推荐阅读:从袁隆平获国际大奖想到的(转)

代码: session session = ...; 【扩展信息:[音乐天堂]Moon River

transaction tx = ...;

parent parent = (parent) session.load(parent.class, id);

child child = new child();

child.setparent(parent);

child.setname("sun");

parent.addchild(child);

s.update(parent);

s.flush();

tx.commit();

s.close();

在上例中,程序并没有显式的session.save(child); 那么hibernate需要知道child究竟是一个临时对象,还是已经在数据库中有的持久对象.如果child是一个新创建的临时对象(本例中就是这种情况),那么hibernate应该自动产生session.save(child)这样的操作,如果child是已经在数据库中有的持久对象,那么hibernate应该自动产生session.update(child)这样的操作.

因此我们需要暗示一下hibernate,究竟child对象应该对它自动save还是update.在上例中,显然我们应该暗示hibernate对child自动save,而不是自动update.那么hibernate如何判断究竟对child是save还是update呢?它会取一下child的主键属性 child.getid() ,这里假设id是 java.lang.integer类型的.
...   下一页
 ·hello,world!    »显示摘要«
    摘要:我的第一篇处女作啊,哈哈! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE