spring + hibernate 没提交却可以保存成功,为什么?

在一个service方法中需要向两个数据库中的两个表中插入记录,所以我定义了两个数据源分别对应这两个数据库。然后我为这两个数据源分别配置了事务管理器,都指向service... 在一个service方法中需要向两个数据库中的两个表中插入记录,所以我定义了两个数据源分别对应这两个数据库。然后我为这两个数据源分别配置了事务管理器,都指向service中的这个方法。当运行到这个方法的过程中(方法并没结束),通过第一个dao的save方法后,查询数据库,没有对应的数据;通过第二个dao的save方法后,查询数据库,有对应的数据,当方法结束后,第一个save保存的数据才能在数据库中查询到。
调换顺序实际上也没有变化。
我还做了其他测试:只配数据源,没有事务管理器,则第一个save方法始终不能保存成功,而一旦执行了第二个save方法,就保存成功了,数据库中也有新数据了。

请问高人这是什么原因啊 ,困扰我好久了?
展开
 我来答
dy_com
2011-06-01 · 超过24用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:68.9万
展开全部
一级缓存的管理: 当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的 list()、iterate()或filter()方法时,如果在Session缓存中胡丛还不存在相应的对裤坦樱象,Hibernate就会把该对象加入到第一级缓存中。当信陆清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。

多余的就不说了,基础的你没有懂
霜_河
2011-06-01 · TA获得超过479个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:212万
展开全部
设置第一个数据源自动提交为true试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拿破仑正方形
2011-06-03 · 超过16用户采纳过TA的回答
知道答主
回答量:85
采纳率:100%
帮助的人:33.7万
展开全部
应该是Hibernate持久化对象的问题,主要session的关闭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胆小的虎虎
2011-06-09
知道答主
回答量:37
采纳率:0%
帮助的人:23.7万
展开全部
检查一下,save()以后有没有提交,或者关闭session
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式