有谁知道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