簡體   English   中英

如何使用 Spring Data MongoDB 插入新日期?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM