当前位置:编程学习 > JAVA >>

有没有人遇到过这个问题

--------------------编程问答-------------------- 在事务里面对持久bean对修改都会同步数据库,这是框架的基本功能,建议楼主去看看框架吧,在事务里面显示调用dao 的 update 是因为有些关系的依赖,比如A里面有B ,然而B不是持久的,然而 在后面又需要用到B,比如B的ID,所以需要显式的调用save. --------------------编程问答-------------------- 这个我知道啊。为什么我在action里面setName不会更新数据。 在servers里面setName就会更新数据。不科学啊。我只是setName就是“赋值”并没有执行update()只是“set”。 --------------------编程问答--------------------
引用 楼主 hzz1988 的回复:
在action里面写一句简单的话
public  void test(){
user  a=servers.getId("1");
a.setName("小张");
}
然后执行这个action。运行结果名字 name不会被更新。肯定的啦。因为没有执行Update();


但是在 servers里面
public  void test(){
user  a=servers.getId("1");
a.setName("小张");
}

然后执行这个action。运行结果名字 name会被更新。而且是数据库name和这里的name="小张"一样。不会看到控制台打印的SQL更新语句。如果数据库不是小张。那么这句话肯定会执行。我就郁闷了。我还没有update()为什么只是set就会更新我数据库!!!求解啊
控制台会打印
Hibernate: update  User  set  name=?, age=?,sex=? where id=?


这个我知道啊。为什么我在action里面setName不会更新数据。 在servers里面setName就会更新数据。不科学啊。我只是setName就是“赋值”并没有执行update()只是“set”。 --------------------编程问答-------------------- 额。。。。 一个赋值操作就会引起框架的标志,导致事务提交的时候会同步更新你这个对象。在ACTION里面是没有事务的。所以在ACTION赋值不会引起对象的修改。。

你也可以试试在 事务里面  把 A对象里面的B 设置为空, 但是你不 UPDATE 框架自动也会UPDATE 的 ~ 多试试就好了,用的多就好。一般简单更新不需要用dao.update (obj )就行
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,