两进程修改数据库,不同步问题的解决办法
一个进程不断查询数据库,看某个字段时候已经被修改,如果修改则做下一步工作;如果没有修改继续循环查询
另外一个进程由用户操作去更新数据库中的这个字段
?
问题是,在上面这样的场景中,查询数据库的进程根本看不到数据被修改
?
解决办法:
?
给第一个查询部分也加上事务管理的代码(一般情况下,对于修改,更新部分的代码才进行事务的管理,而这种查询代码都是直接查询的)
?
自己没有试过,对这个很感兴趣。
与事务无关,就算启用事务,对象还是在session缓存里面。
解决方式很多,比如清一级缓存,你选择了最差的一种方式。
再多说一句,查询怎么都不加事务?这毛病得改改。 18 楼 rain2005 2009-07-01 ray_linn 写道只能说这个设计太搓了,明知道有别的进程还需要修改数据库,还会用上hibernate。
为什么有别的进程还需要修改数据库就不能用hibernate,只要不启用二级缓存就OK。
19 楼 ray_linn 2009-07-01 rain2005 写道ray_linn 写道只能说这个设计太搓了,明知道有别的进程还需要修改数据库,还会用上hibernate。
为什么有别的进程还需要修改数据库就不能用hibernate,只要不启用二级缓存就OK。
无非以性能为代价呗。 20 楼 faylai 2009-07-01 这样的设计就有问题,本身轮询数据库就不是件好事。