两个数据库如何保证数据一致性

小昭归来 发布于 2015/01/19 21:26
阅读 1K+
收藏 0

在百度地图的数据库保存一份数据,在自己数据库里保存一份数据

百度地图数据是通过url,post过去的,自己的数据库是spring 管理的hibernate处理的

如何通过spring serivce层的事物管理来保证两个同时成功失败呢?

这样可以嘛,

在spring service方法下(声明为一个事务),有一个hibernate,dao层的save方法,然后下面写一个post请求的方法,根据post的返回状态来抛出异常,从而达到任何有异常都不成功。

加载中
0
蔡佳娃
蔡佳娃
当然可以,使用spring的事务,加在service层,这样就可以。但是你这样会有一个很头疼的问题,没有办法判断你post那边是否真的处理好了。例如,百度那边已经存好了,在返回时出问题了,你怎么处理
蔡佳娃
蔡佳娃
大家都指出来了,你在好好设计设计。
小昭归来
小昭归来
毕竟不是直接和数据库建立连接,也只能假设百度不会出错否则没办法搞了,多谢
0
甘薯
甘薯

这种不确定的情况下我觉得不能指望spring service.

也不能指望百度的post返回值.

应该再去用URL读取一次确保百度保存成功了.效率低一些但是可以确保无虞.

0
刘柳
刘柳

不行。很显然,如果post成功,本地保存失败,如何处理?

我以前处理时如果本地失败,再post删除一下。

返回顶部
顶部