java项目,多台tomcat应用更新丢失

假如有2台tomcat服务,现在同时对某条记录更新操作。具体业务逻辑如下:首先查询出某条记录的字段A的原始值为100,然后tomcat1需要给A字段加100,tomcat2需要给B字段加200,目标结果是A的最终结果值为400。但是会出现这么一类情况,tomcat1,tomcat2都已经完成查询A的值,即100,但是tomcat1更新后A的值为200,然后tomcat2去更新后A的值变为300,并不是最终我们需要的400,即更新丢失了。请问各位大侠这个问题怎么解决呢??

这个问题其实类似于银行账户之间的转账操作,需要对公共操作的数据加锁,防止出现数据丢失

参考下这篇文章:http://blog.csdn.net/gz2008gz/article/details/5398529

如果使用hibernare框架,可以使用flush(),先清空缓存

这个并发的问题,一般加锁处理;
悲观所:数据库加锁,select 的时候加一下 for update,保证一个进程对数据进行操作;
乐观所:数据加版本号 version ,在代码逻辑中处理验证数据;
如果数据量比较少,一般悲观所就够了,

线程问题吧,需要给每个步骤加上锁