我目前正在使用 jsf 2、jpa 2 和 spring 3 进行开发。
我想我很理解@Transactional 的使用和它的传播,但仍然只适用于一个线程,在我的情况下是我的webapp 的一个请求响应
基本上我需要的是:
- 远程业务服务的客户端是发起和结束事务的客户端
- 如果发生任何异常,spring 将进行异常翻译
这是一个希望可以描述意图的示例:
- 客户端(假设它是移动设备,不一定是 web 应用程序)要求服务器创建新事务
- 服务器返回一个事务 id
- 客户端调用 serviceA,传递 transactionId 以使用
- serviceA 使用事务运行(基于传递的 transactionId)完成,但事务未提交
- 客户端继续调用 serviceB,传递相同的 transactionId 以使用
- serviceB 使用 serviceA 发起的上一个事务运行
- 如果 serviceB 运行正常,则客户端可以根据 transactionId 请求服务器提交
- 如果 serviceB 运行异常,spring 可以进行 sql 异常翻译
这可能吗 ?
谢谢 !