Spring Data MongoDB 4.0事务支持

时间:2018-06-13 19:40:45

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

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

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

1 个答案:

答案 0 :(得分:2)

  

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