是否可以使用Morphia简单地更新Mongo中的所有字段?

时间:2012-03-02 16:46:15

标签: mongodb morphia

我们将Mongo映射到Morphia。 Morphia有许多优化,允许文档中的更新仅应用于更改的字段。

这是值得赞赏的,但此时此刻,我需要未经优化的案例。我只想保存一个实体,而不用担心哪些字段已经改变。

当然,我可以简单地调用save(),但这会调用生命周期方法,就好像我正在创建一个新对象一样。

也许这就是答案:save()并让我的生命周期方法足够智能,以检测这是“重新保存”而不是创建新实体。

如果有更好的方法,我当然希望听到它。

1 个答案:

答案 0 :(得分:1)

我的先驱者看起来像这样:

@PrePersist
public void prePersist() {
    creationDate = (creationDate == null) ? new Date() : creationDate;
    lastChange = (lastChange == null) ? creationDate : new Date();
}

如果你想检查一个实体是否已被持久化,我可能会检查id是否为空值,因为它是在第一次保存时自动生成的。