【发布时间】:2019-09-11 19:40:52
【问题描述】:
我正在使用 Spring Boot 2.1.2 版本(mongodb-driver v 3.8.2)并开发与 mongodb 一起运行的 Web 应用程序。我的应用程序兼容 mongodb 3.4 版本(此版本不支持事务),现在我正在引入事务机制。我用事务注释来注释我的服务方法
@Transactional
public void process(Object argument) {
...
...
...
}
它适用于 mongodb v 4,一切正常 - 失败的事务被回滚。
但是当我使用 mongodb v 3.4 启动我的应用程序时,我的应用程序崩溃了
Sessions are not supported by the MongoDB cluster to which this client is connected
异常。
问题是我希望我的应用程序支持两种情况:使用相同代码的事务性和非事务性(对于两个 mongodb 版本)。所以我想知道我该怎么做?似乎我的应用程序应该只为特定版本的 mongo 创建会话,即这个注释应该只针对这种情况进行处理。
我该怎么做?
【问题讨论】:
标签: java spring mongodb transactions spring-data