MongoDB添加createAt UpdatedAt字段java

问题描述 投票:0回答:1

我有兴趣知道如何在使用Java同步驱动程序时在mongo上创建createdAt和updatedAt字段。

我知道如何用猫鼬做这件事

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

我想知道如何在Java中实现相同的目标,我知道在方案中包含createdAt和updatedAt字段并在插入和更新期间更新值的一种可能性?

java mongodb mongo-java mongo-java-driver
1个回答
0
投票

您可以将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();
        }
     }
© www.soinside.com 2019 - 2024. All rights reserved.