如何在Spring Data MongoDB中插入新日期?
我目前正在诉诸
User = new User();
user.setCreationDate(new Date());
mongoOperation.save(user);
解决问题,但最终结果是用户运行代码的服务器的当前时间保存,而不是运行数据库的服务器的当前时间。
由于此代码将并行运行在多个服务器上的多个实例中,并且服务器的时间可能略有不同,因此我希望复制与执行此操作时完全相同的行为
db.users.insert({'creationDate': new ISODate()})
直接在mongo shell中。
如何使用Sprint-Data-MongoDB实现这一目标?
答案 0 :(得分:2)
通过使用弹簧数据审核功能
,您可以始终如一地实现这一目标为了启用审核,我们需要添加< mongo:审核/> 标记为Spring配置。
审核让你以声明方式告诉Spring存储:
@CreatedDate
@LastModifiedDate
@CreatedBy
@LastModifiedBy
@Version
对于我们的用例,如果我们结合使用javax.persistence jar日期样式和mongodb审计,我们总是使用以下声明来获取新的ISODate()
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
@CreatedDate
private Date createdDate;
这样您就可以使用spring-data-mongodb
创建新日期