我有兴趣知道如何在使用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/