【问题标题】:Spring Data MongoDB 4.0 transactions supportSpring Data MongoDB 4.0 事务支持
【发布时间】:2018-11-23 11:53:55
【问题描述】:

MongoDB 4.0 将引入transactions 支持和 ACID 保证。

Spring Data MongoDB 是否已经支持 MongoDB 中的事务,如果不支持,这个很棒的功能何时可用。我真的需要它,考虑到以下问题 - MongoDB schema design in order to support application horizontal scaling

【问题讨论】:

    标签: java spring mongodb spring-boot spring-data-mongodb


    【解决方案1】:

    Spring Data MongoDB 是否已经支持 MongoDB 中的事务了

    Spring Data Lovelace M3 (2.1.0.M3) 支持 2018 年 5 月 17 日发布的 MongoDB v4.0 的同步事务。另见 Spring Data Lovelace M3 release notes

    来自Spring Data docs: MongoDB transactions的示例

    ClientSession session = client.startSession(options);                   
    
    template.withSession(session)
        .execute(action -> {
            session.startTransaction();                                     
            try {
    
                Step step = // ...;
                action.insert(step);
                process(step);
                action.update(Step.class).apply(Update.set("state", // ...
                session.commitTransaction();                                
            } catch (RuntimeException e) {
                session.abortTransaction();                                 
            }
        }, ClientSession::close)                                            
        .subscribe();
    

    另请参阅:DATAMONGO-1920DATAMONGO-1970

    【讨论】:

    • 感谢您的回答!你知道它什么时候发布并包含在一些 Spring Boot RELEASE 中吗?
    • @WanBachtiar Spring Data 是否支持 4.0 版之前的 mongodb 事务支持。
    • @Desert no 在数据库级别。您也许能够使用 Spring Transaction Management 的软件级事务,如果您能够升级,我只建议升级到 4.0 以简化它。
    【解决方案2】:

    您可以参考我最近在另一个帖子上回答的答案,希望对您有所帮助。

    但这是用于响应式 Spring Boot 和 MongoDB 设置

    链接是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      相关资源
      最近更新 更多