几个关系数据库表由驻留在进程中的单个对象缓存管理。当缓存被提交时,表被更新。DB 关系表由常规 SQL 查询更新,而不是像 hibernate 这样更花哨的东西。
最终,其他进程在不相互通信的情况下进入了修改该对象的业务,即,每个进程将初始化该对象(从 DB 读取)并更新它(提交到 DB),而其他进程将不知道它坚持到过时的缓存。
我必须修复这个工作流程。我想到了几种方法。一种是使这个对象成为一个mBean。因此,对象将驻留在一个进程上,并且每个进程最终都会通过 mBean 方法调用修改该进程中的对象。
然而,这种方法有几个问题。1) 此缓存返回的每个对象都是一个 mBean,这可能会使方法调用变得非常冗长。2)还要求每个进程都应该看到数据库的一致数据模型(缓存),并且如果可能的话,它应该将其内容合并到数据库中。(如交易)。如果数据库被其他进程显着更新,则合并失败是可以的。
Java中的哪些技术将有助于解决这个问题?