我的应用程序中有一个新要求:我需要从视图中获取一些数据并将其发布到第三方Web服务。
不幸的是我不能在这里共享任何代码,因为它是专有的,我没有权利从我工作的组织交换任何代码。
这是SOA,当我在系统中进行支付时,会在加载我的监听器类的服务启动观察者模式,然后在发布到第三方之前,使用不同数量的DAO将数据存储在DB中类,它启动事务并将数据存储到数据库。从这些表中我的视图已更新。
我想hibernate会保持数据缓存,并且在整个服务执行未完成之前不会刷新。当我登陆我在相同的事务/服务上下文(spring managed)中调用的服务时,视图数据不会更新并且在那段时间内被锁定,我无法获取数据并且卡在那里。如果我手动提交事务,它会导致数据不一致,因为其他DAO也称为提交,在这种情况下视图没有更新,我也可以从中获取数据,因为我们的应用程序使用AOP,但它导致异常,因为我手动提交了我的事务(我认为不允许使用架构)。
我对所有这一切都很陌生,我确实尝试过flush,Transactional注释以及新事务的传播,但没有。如果你能给我一个提示做什么,那将会有所帮助。
可以应用JPA或Hibernate中的任何解决方案,因为我可以使用其中任何一种。