我有兴趣知道如何在使用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();
}
}