永发信息网

hibernate有时可以保存数据有时不能保存数据,包括它的查询有时候查询的也是错误的数据

答案:6  悬赏:0  手机版
解决时间 2021-02-23 23:47
同一个功能,每次提交数据完全相同,为什么有时可以保存有时失败,包括查询利用HQL查询也会查询出很奇怪的数据,比如某时应该是空数据,结果居然查询出来了其他数据!!跟踪分析了好久用jconsole,JMAP,MAT监控内存没有任何变化一切正常,难道是session的问题吗?项目使用struts2+spring3.0.5+hibernate3.5,spring事务使用的是AOP声明事务,事务这一块是正确的,我目前觉得是session出的问题,但是不知道因为什么,或者是别的原因,唉
最佳答案
你的session是不是没有关闭过啊,我遇到过因session未关闭引起的数据不一致的情况.貌似多个session实例间的数据不是同步或共享的.比如,你创建了session1,session2.在request1中使用session1添加了数据user1,在request1结束后的另一个请求中使用了session2查询user1,可能就会查询不到你上个请求中所保存的数据(数据已存在数据库中).
还有其他很多数据不一致的情况.比如明明已经更新数据了(数据库中的数据是正确的,但就是查询出的数据是更新前的),数据删除了还能查询到(数据库中已没有数据了)等等.

我当时是没有关闭ThreadLocal中的session,也不知道是不是我有什么地方设置错了还是其他的问题...后来就在request结束时把session关闭掉就好了.
全部回答
那么久,还没碰到,看你咋写法的了
session没关掉 session.close()
可以查看一下web.xml里面加一个 OpenSessionInViewFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter OpenSessionInViewFilter *.action
有没有主键?有没有唯一标识?有没有用到持久化?有的话,id相同时只会更新不会保存,没有用到的话会,唯一标识主键会报错
其实也可能是你的hibernate配置关系的时候 没有级联操作或者其他的。这些都会导致以上你所发生的。这个跟你的事务是没有关系的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是中国人,孩子父亲是日本人,孩子在中国出生
欧典咖啡语茶我想知道这个在什么地方
歌词是这一切其实本无味细细的品尝人生苦味
IP被网站拉入黑名单了怎么办
红磷和氧气反应的题求解谢谢大神
什么叫意外死亡
中国太平洋保险桃花源广场服务部地址在什么地
桂阳县郴州辉煌五金店这个地址在什么地方,我
为什么三星a8000没有通话录音
在肯德基或麦当劳之类的做那种签合同的长期兼
暗黑破坏神3 号令傀儡哪个好用
惠普厨卫电器在什么地方啊,我要过去处理事情
孕妇感冒几天能自愈
这句英文怎么翻译 你回国了吗? 任何关于产品
当某多层砌体房屋可能在中部产生较大的沉降时
推荐资讯
阿胶糕真的很好!吃了仅一个月的时间头发竟然
【艾德里安】...德国卡塞尔市现年58岁的英裔
女朋友为什么不喜欢叫我老公,而是喜欢叫我亲
环佩岭厂怎么去啊,有知道地址的么
链霉蛋白酶颗粒价格
蕾蕾商行地址在哪,我要去那里办事
钠长石的作用和等级划分是什么?
三相电度表反转,该怎样调整?
如图,四边形ABCD为平行四边形,试说明(1)AE比A
这是什么树?树身上有刺
企业在短期经营决策中应该考虑的成本有()。A.
本地的身份证可以拿到别处去上牌照吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?