关于Hibernate里面的更新方法 我在hibernate里面使用update(Object)方法后Object是一个实体类对象然后我只给其中两个字段给值 然后在更新 为什么数据库与其相关的其它字段值都为空了呢 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Hibernate在 update持久对象的时候,产生的sql语句是把所有的属性统统set一遍,没有的就设置成 NULL<class name="ClassName" table="tableName" dynamic-update="true" dynamic-insert="true|false"/> 这个设置只对在一个session中的有状态的PO起作用,就是动态生成 了update语句,set要更新的属性。另外,你可以load对象,在set属性,在update。OK?不知道说明白了没有。 恰恰相反,动态更新是提高了性能。例如:执行如下sql语句,你认为哪个会更快些1、update table set name=?, sex=? .........xxxx=xxx,xxxx=xxxxx where ...(非动态更新 dynamic-update="false")2、update table set name=?(动态更新 dynamic-update="true")一般的不设置默认是false。 都没成功啊 设置属性还是不行啊 一样的可以把数据库的值set成null 啊 你要先 load一个对象出来,在set属性,在update 数据库块中的操作性能提高了,但是hibernate低层的性能降低了,他需要判断哪个属性是需要更新的属性。对于属性少的实体修改推荐这种使用方法,对于属性多的实体还是使用先load后修改比较好。 无论是否使用动态更新,都是先load,在set,在update,你认为在内存执行速度快,还是生成网络连接到数据库,在更新数据快?可以做个简单的测试。来验证我们各自的观点。 Struts2+Spring+JPA(Hibernate)报空指针问题? HTTPClient访问中国期刊网的问题 j2ee 关于在websphere上部署axis2的问题 请大家推荐一个比较灵活的工作流框架 junit测试struts问题 SPRING,HIBERNATE,QUARTZ,WEBWORK集成持久任务出现的问题 spring+struts+hibernate 怎么学 struts1.1的疑问 大家介绍一下自己做struts开发的工具 hibernate同一张表的左链接问题 关于java操作XML的问题
<class name="ClassName" table="tableName" dynamic-update="true" dynamic-insert="true|false"/>
这个设置只对在一个session中的有状态的PO起作用,就是动态生成 了update语句,set要更新的属性。另外,你可以load对象,在set属性,在update。OK?不知道说明白了没有。
恰恰相反,动态更新是提高了性能。例如:执行如下sql语句,你认为哪个会更快些
1、update table set name=?, sex=? .........xxxx=xxx,xxxx=xxxxx where ...(非动态更新 dynamic-update="false")2、update table set name=?(动态更新 dynamic-update="true")一般的不设置默认是false。
设置属性还是不行啊
一样的可以把数据库的值set成null 啊
对于属性少的实体修改推荐这种使用方法,对于属性多的实体还是使用先load后修改比较好。