有没有办法通过RMI调用传播事务?目前,我在客户端使用@Transactional注释了一个服务,该服务使用DAO的注入RMI代理(显然,DAO的实现在服务器端运行)。当我使用DAO时,我得到一个Hibernate异常(“无法获取当前线程的事务同步会话”),这是有意义的,因为DAO本身不会启动新的事务。我目前唯一的解决方法是在服务器端启动一个新事务(通过向DAO方法添加@Transactional(propagation = Propagation.REQUIRED))。
基本上,这可以归结为某人是否已经为Spring Distributed Transaction Involving RMI calls possible? / Spring添加了分布式事务支持提供了一个很好的答案。
Btw。:我实际上并不需要事务性支持,即如果有一种方法可以在某种虚拟事务中获得一个hibernate会话,而无需在服务器端明确地启动新事务,我很高兴同样。