Hibernate entity属性修改导致对象的记录被修改
来源:互联网 发布:lolita洋装好的淘宝店 编辑:程序博客网 时间:2024/06/05 06:11
当通过hibernate获取到entity后 然后在get属性时修改了属性的值后 然后根据id从新到数据库中查询该实体 这是对应的表中该记录也被修改 如果没重新查询修改不修改还不好说
log分析 当修改实体后在次查询执行了三次hibernate语句 首先执行查询语句 接着执行修改语句 访问实体时又执行了次查询语句
原因分析 当通过herbernate查询出entity后 将被缓存在session中 当修改了entity的值后 在第二次查询时一看缓存的值有修改 将把entity里修改的值放到entity里
除了导致查询时会执行修改操作以外 有可能还会出现更具id查询奔溃现象
奔溃场景:当使用dao更具id查询出来后修改了了entity的属性 接着使用dao查询同张表的不同id的记录时出现崩溃
出问题的Entity代码
public String getThumb() { if(TextUtils.isBlank(thumb)){ thumb= "heihei.jpg"; }else{ thumb=thumb+".jpg"); } return thumb;}
解决方案
1.在查询的地方开启的事物为read_oliny
2.getThumb方法里不要修改thumb的值(推荐)
public String getThumb() { String result; if(TextUtils.isBlank(thumb)){ result= "heihei.jpg"; }else{ result=thumb+".jpg"); } return result;}
其他资料
0 0
- Hibernate entity属性修改导致对象的记录被修改
- 每次重启Tomcat后,使用Hibernate修改数据库的记录都会导致以前记录被删除的解决办法。
- Hibernate持久化对象修改id重新保存的办法——Hibernate学习记录二
- hibernate 修改记录
- hibernate 只更新修改了的属性。
- org.hibernate.MappingException: Unknown entity 错误修改
- 修改对象私有属性
- 分析归档日志提取某些对象被修改的记录
- 属性“waitingInvoiceAmount”是对象的一部分,不能被修改
- 安卓修改对象的属性
- 四、ObjectARX 修改对象的属性
- js如何修改对象的padding属性
- Android修改修改JavaBean的属性导致Sqlite没有及时更新的问题
- javascript函数内设置传入参数对象导致函数外的实参被修改
- 修改Hibernate源码实现建表时字段和Entity里定义的fields顺序一致
- 修改Hibernate源码实现建表时字段和Entity里定义的fields顺序一致
- 关于给javascript对象添加、删除、修改对象的属性
- Hibernate拉出的持久对象放入新集合中被修改,持久对象也变了
- 红黑二叉查找树
- android使用wire方式生成protobuf的Java文件
- Linux-(C)利用Mysql相关API实现类似mysql的操作
- mybatis坑
- iOS开发笔记>> 程序上线后, 如何调试程序?
- Hibernate entity属性修改导致对象的记录被修改
- 51Nod-1086-背包问题 V2
- Android安全:So分析
- Shader特效——“Bilateral Filter”的实现 【GLSL】
- 妹的
- hdu5833 高斯消元
- 删了的概要
- bitset
- iOS开发笔记>> 在开发中如何处理 NSLog?