跳转至

会话和事务

Mars Session && Transcation 介绍

MarsSession

MarsSessionClientSession 的子类

MarsSession session = mars.startSession();

MarsSession 同时也提供了 Mars 的所有功能
所以您可以使用 MarsSession 完成所有的Mars 具备的操作

MarsTranscation

事务 主要是基于Session 的一致性完成的 。

MarsTranscation 是 一个MongoDB Transcation 开放接口 您可以在内自定义相关操作 但是请注意 版本及兼容情况 请查阅相关文档 link

Useage

mars.withTransaction(( session ) -> {
        session.save(stu);

        assertNull(mars.findAll(new Query(), Student.class).tryNext());


        Update update = new Update().inc("stuAge", 13);

        mars.update(new Query(), update, Student.class);

        assertEquals(session.findAll(new Query(), Student.class).tryNext().getStuAge(), stu.getStuAge() + 13, 0.5);

        assertNull(mars.findAll(new Query(), Student.class).tryNext());
        return null;
    });