如何使用MongoDB Java创建事务?

huangapple go评论74阅读模式
英文:

How to create transactions using MongoDB Java?

问题

我正在使用Java(不是Spring)处理MongoDB集合。我希望在一个事务中执行一些更新操作,以便所有操作要么全部执行,要么全部不执行。

我没有找到关于如何实现这个的简单示例。我理解这与MongoDB中的会话有关,但是如何创建这个会话呢?如果有人能够提供一个在Java中实现这种场景的示例,我将不胜感激。

谢谢,
Osnat。

英文:

I am working in java (not is spring) on a mongo db collection. I want to perform some update operations in one transaction, so all or none of the operations will be execute.
I didn't find any simple example of how it can be done. I understand that it related to session in mongo db, but how to create this session? If someone have an example of this scenario in java I will appreciate if he could share.

Thanks,
Osnat.

答案1

得分: 6

这里有一个完整的示例在 MongoDB 4 文档中,链接在此

使用模式如下:

ClientSession session = client.startSession();
try {
    session.startTransaction(  ... 一些事务选项 ... ).build());
    // 操作数据
    session.commitTransaction();
} catch (MongoCommandException e) {
    session.abortTransaction();
} finally {
    session.close();
}
英文:

There's a complete example in the mongodb 4 documentation, here.

The usage pattern looks like this:

ClientSession session = client.startSession();
        try {
            session.startTransaction(  ... some tranaction options ... ).build());
            // manipulate data
            session.commitTransaction();
        } catch (MongoCommandException e) {
            session.abortTransaction();
        } finally {
            session.close();
    }

huangapple
  • 本文由 发表于 2020年9月22日 02:03:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/63997699.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定