【问题标题】:MongoDB add createAt updatedAt field javaMongoDB添加createAt updatedAt字段java
【发布时间】:2020-03-06 17:04:57
【问题描述】:

我很想知道在使用 java 同步驱动程序时如何在 mongo 上拥有 createdAt 和 updatedAt 字段。

我知道如何在猫鼬中做到这一点

const SchemaName = new Schema({
//myschema
}, {
  timestamps: true
})

我想知道如何在 java 中实现相同的功能,我知道在模式中拥有 createdAt 和 updatedAt 字段并在插入和更新期间更新值的一种可能性?

【问题讨论】:

    标签: java mongodb mongo-java mongo-java-driver


    【解决方案1】:

    您可以将javax.persistence 注释与@PrePersist 和@PreUpdate 一起使用。

    @PrePersist

    在将数据持久化到数据库之前调用,updatable = false只记录一次。

    @PreUpdate

    在向数据库中插入数据之前调用,每次插入时调用。

    您的实体需要继承下面的 AbstractEntity 类:

        @MappedSuperclass
        public class AbstractEntity implements Serializable {
    
            private static final long serialVersionUID = -8087154111957605234L;
    
            @Column(name = "CREATED_AT", updatable=false)
            private Date createdAt;
    
            @Column(name = "UPDATED_AT")
            private Date updatedAt;
    
            public Date getCreatedAt() {
                return createdAt;
            }
    
            public void setCreatedAt(Date createdAt) {
                this.createdAt = createdAt;
            }
    
            @PrePersist
            protected void onCreate() {
                createdAt = new Date();
            }
    
            @PreUpdate
            protected void onUpdate() {
                updatedAt = new Date();
            }
         }
    

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 1970-01-01
      • 2022-11-15
      • 2012-10-27
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多