在mongo(morphia)中更新事务管理器中的多个对象

时间:2014-09-04 13:35:44

标签: mongodb transactions morphia

我有两个实体

@Entity
public class Place  {

    private int rating;

    public void addRating(int rating) {
        rating+=rating;
        datastore.save(this);
    }
}

@Entity
public class User {

    private int rating;

    public void addRating(int rating) {
        rating+=rating;
        datastore.save(this);
    }
}

我需要在原子庄园中更新两个对象。我很害怕,mongo没有交易支持。有没有最好的方法以安全的方式做到这一点?

 user.addRating(3);
 place.addRating(3);

1 个答案:

答案 0 :(得分:0)

如果您需要以原子方式执行此操作,请更改数据结构。您在交易中拥有的所有内容都需要进入单个文档。没有其他方法可以模拟交易。

如果您的数据绝对无法做到这一点,那么MongoDB就是错误的工具。

PS:在实体内部拥有数据存储区是一个有趣的"接近恕我直言。