hibernate 更新所有字段问题
来源:互联网 发布:365外勤软件下载 编辑:程序博客网 时间:2024/06/06 05:26
今天遇到一个问题;
在一个非事务方法A中,调用Bservice获取B对象;
对B对象的一个字段进行赋值,B.setB1("B1");
调用Bservice的update方法,update方法直接用hibernate的updateObject方法进行保存。
debug模式下,show-sql=true
结果发现:所有的字段都更新了,update B set B1=?,B2=?,B3=? where ....
这不符合我的需求,hibernate配置文件也已经设置了dynamic-update="true";
用了各种方法都不行;
后来发现一个帖子:http://bbs.csdn.net/topics/310254447
关键内容如下:
今天做了一个测试,发现Hibernate的dynamic-update只在两种条件下生效:
1。load进来的对象和被执行update的对象在同一个session内,对已经persisit持久化的对象进行update时,这里的“已经persist”是指update之前已经进行了create或者load调用。代码示例:
Session session = openSession();
User user = (User)session.load(User.class,new Long(12));
user.setAddress(null);
session.update(user);
session.flush();
将hibernate配置成show_sql=true,可以看到update产生的sql语句。
2。load进来的对象和被执行update的对象不在同一个session内,即要update的对象在另一个session中。代码示例:
Session session1 = openSession();
User user = (User)session1.load(User.class,new Long(12));
Session session2 = openSession();
user.setAddress(null);
session2.merge(user);
session2.flush();
如果将session2.merge(..)改成update,则会更新所有可更新的属性。
尝试用第二种方法,merge再flush,解决问题!
dynamic-updatedynamic-update
- hibernate 更新所有字段问题
- 解决Hibernate 更新部分字段的问题
- Hibernate更新部分字段而不更新所有字段,影响性能
- hibernate 更新部分字段
- hibernate 更新部分字段
- hibernate更新部分字段
- hibernate 更新部分字段
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- Hibernate更新部分字段浅谈
- hibernate更新数据问题
- hibernate动态更新问题
- Hibernate 动态更新问题
- Hibernate更新的问题
- 更新数据库所有表及所有字段的存储过程
- hibernate只更新被修改字段
- hibernate如何实现部分字段更新
- Common Subsequence (poj 1458) 最长公共子序列
- 基于 Ansj 的 elasticsearch 2.3.1 中文分词插件
- 如何在CentOS 7.2下安装 Emacs
- Android Proguard 详解
- ExtJS 4.2 教程-03:使用Ext.define自定义类
- hibernate 更新所有字段问题
- css3图片注释 Annotation Overlay Effect with CSS3 (精)
- java 泛型
- 获取非公共无参构造函数的类实例
- AndroidStudio MacOsFM自定义快捷键
- Android四大天王之Service篇
- Oracle 增加修改删除字段
- LIGHTOJ 1348 树链剖分
- Deep Learning(深度学习)