通过自定义EntityListener的方式:
EntityAuto类
@MappedSuperclass
@EntityListeners({ EntityAutoListener.class })
public class EntityAuto implements Serializable {
/** 创建时间 */
private Date createTime;
/** 修改时间 */
private Date modifyTime;
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
}
EntityAutoListener类
public class EntityAutoListener {
@PrePersist
public void prePersist(EntityAuto entityAuto) {
Date now = new Date();
entityAuto.setCreateTime(now);
entityAuto.setModifyTime(now);
}
@PreUpdate
public void preUpdate(EntityAuto entityAuto) {
Date now = new Date();
entityAuto.setModifyTime(now);
}
}
这样Employee extends EntityAuto类,就添加了这两个字段 create_time和modify_time
发现一个问题:
通过调用JpaRepository的save方法,是可以setModifyTime的
但是调用@Modifying @Query,我们自己写原生sql,是不能setModifyTime的,需要自己来处理