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

我知道怎么用猫鼬做

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


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

最佳答案

您可以将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();
        }
     }

关于java - MongoDB添加createAtupdatedAt字段java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60568590/

10-10 22:41