搜索
java - Hibernate未调用update自动提交
高洛峰
高洛峰 2017-04-17 14:36:34
[Java讨论组]

场景时在SSH2下的Service层。

某service中

java...
// 查询事件模板
CommonEvent event = commonEventDao.find(code);

// 模版内容是"${name}登录"
String template = event.getTemplate();

template = template.replaceAll("\\$\\{name\\}", "admin");
event.setTemplate(template);

// 其他service的调用
...

上边DAO的查询:

javapublic CommonEvent find(String code) {
    return (CommonEvent) sessionFactory0.getCurrentSession().get(CommonEvent.class, code);
}

然后service结束后,数据库中的event纪录中的template字段从 ${name}登录 变成了 admin登录,原因在哪里呢?

如果在find查询时使用session.evict(event)将该对象逐出,则不会有脏写的问题。

如果不使用evict方法该怎么处理?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
阿神

new一个CommonEvent类型的对象event2,把event的属性值copy一份过来,repalceAll后的内容放到event2里去。应该是当前的逻辑代码中,event还是持久态,所以最后提交事务后,把event的内容也更新到数据库了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号