我们将Mongo映射到Morphia。 Morphia有许多优化,允许文档中的更新仅应用于更改的字段。
这是值得赞赏的,但此时此刻,我需要未经优化的案例。我只想保存一个实体,而不用担心哪些字段已经改变。
当然,我可以简单地调用save(),但这会调用生命周期方法,就好像我正在创建一个新对象一样。
也许这就是答案:save()并让我的生命周期方法足够智能,以检测这是“重新保存”而不是创建新实体。
如果有更好的方法,我当然希望听到它。
答案 0 :(得分:1)
我的先驱者看起来像这样:
@PrePersist
public void prePersist() {
creationDate = (creationDate == null) ? new Date() : creationDate;
lastChange = (lastChange == null) ? creationDate : new Date();
}
如果你想检查一个实体是否已被持久化,我可能会检查id
是否为空值,因为它是在第一次保存时自动生成的。