我想在MongoDB中爲文檔上的每個更新更新update_at
屬性,以便稍後可以根據上次update_at字段檢索文檔。我遇到這種情況有兩種方法。使用Morphia Java在每個udpate上更新mongo中的updated_at屬性
更新update_at在每個DAO調用,比如
public void updateMemberDetails(Long memberId, Sring email) { UpdateOperations<Member> ops = getDs().createUpdateOperations(Member.class); Query<Member> query = basicQuery(memberId); ops.set("email", email); ops.set("update_at", new Date()); getDs().update(query, ops); }
其他方法是調用蒙戈的生命週期法模型(http://mongodb.github.io/morphia/1.4/guides/lifeCycleMethods/)
@PrePersist public void prePersist() { update_at = new Date(); }
問題: - 方法1的工作但是方法1的唯一缺點是我必須在每個方法中不想更新的每個DAO更新方法中添加ops.set("update_at", new Date());
。
在方法2中prePersist()
僅在operation db.save()
中調用的方法中,在db.update()操作中不調用prePersist()方法。所以我無法在DAO方法調用db.update()時更新日期。