1

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

很感激,但此刻,我需要未优化的案例。我只想保存一个实体,而不用担心哪些字段发生了变化。

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

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

如果有更好的方法,我当然会很高兴听到它。

4

1 回答 1

1

我的 prepersist 看起来像这样:

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

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

于 2012-03-03T14:47:07.503 回答