[英]How can I do a insert a new Date with Spring Data MongoDB?
如何使用 Spring Data MongoDB 插入新日期?
我目前正在诉诸
User = new User();
user.setCreationDate(new Date());
mongoOperation.save(user);
来解决这个问题,但最终的结果是用户保存的是运行代码的服务器的当前时间,而不是运行数据库的服务器的当前时间。
由于此代码将在多个服务器上并行运行多个实例,并且服务器的时间可能略有不同,因此我想复制与执行完全相同的行为
db.users.insert({'creationDate': new ISODate()})
直接在 mongo shell 中。
如何使用 Sprint-Data-MongoDB 实现这一目标?
您可以使用spring-data审核功能来一致地实现
为了启用审核,我们需要在Spring配置中添加<mongo:auditing />标签。
审核使您可以声明性地告诉Spring存储:
@CreatedDate
@LastModifiedDate
@CreatedBy
@LastModifiedBy
@Version
对于我们的用例,如果我们结合使用javax.persistence jar日期样式和mongodb审核,则始终通过使用以下声明来获取新的ISODate()
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(style = "M-")
@CreatedDate
private Date createdDate;
这样您可以使用spring-data-mongodb创建新的日期
@Column(updatable = false)
@CreationTimestamp
private LocalDateTime createdAt;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.