有誰知道morphia是否支持在創建/修改操作期間在mongodb中創建/更新集合中文檔的自動時間戳。嗎嗎嗎支持自動時間戳?
我已經知道這個支持在mongodb中不可用。我想知道是否有任何方法可以獲取morphia驅動程序中數據或文檔的上次訪問/更新時間。
感謝, sadish
有誰知道morphia是否支持在創建/修改操作期間在mongodb中創建/更新集合中文檔的自動時間戳。嗎嗎嗎支持自動時間戳?
我已經知道這個支持在mongodb中不可用。我想知道是否有任何方法可以獲取morphia驅動程序中數據或文檔的上次訪問/更新時間。
感謝, sadish
我一般採用的是基礎機構,這是所有其他實體延伸。它提供的ObjectId,創建日期,最後更改日期,禁用標誌,...
相關的代碼片段是這樣的:
protected Date creationDate;
protected Date lastChange;
// Getters and setters or final setters which don't do anything,
// if you only want to allow the entity to update the values
@PrePersist
public void prePersist() {
creationDate = (creationDate == null) ? new Date() : creationDate;
lastChange = (lastChange == null) ? creationDate : new Date();
}
對不起提前如果這不是確切的答案你正在尋找。但簡短的回答是否定的。
支持該操作的似乎沒有API在最新的Morphia中。也許有一個錯誤打開,以支持這一點。同時,您應該使用您最喜愛的構造函數來處理java.util.Date或java.sql.Timestamp。
的源代碼Morphia有適當的轉換器內置來處理這個TimestampConverter.java。
只與切線相關。如果你使用$currentDate
的理由是爲了避免多個主機之間的時鐘偏移問題,那麼你就會吠叫錯誤的樹。雖然在$currentDate
文檔中沒有明確說明,但有文檔記錄,MongoDB沒有解決各種主機之間的時鐘偏移問題。這可以在documentation for ObjectId.getTimestamp()中找到。因此,$currentDate
的使用與客戶端的時間標記相比幾乎沒有什麼好處。
試着把你的答案中所述錯誤的鏈接。它會改善您的工作,並讓讀者更容易追蹤它。 – alejdg
我沒有足夠的聲望來放置兩個以上的鏈接:D –
嘗試使用評論。然後有人可以用它編輯答案。 – alejdg