实现当给表插入一条数据的时候,对gmtCreate与gmtModified两个时间字段进行操作,而当修改这条记录的时候,则对gmtModified字段进行操作
新建一个类,实现MetaObjectHandler接口,重写接口方法,并在类名上加上@Component
@Component
public class MyHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
System.out.println("添加插入时间");
this.setFieldValByName("gmtCreate",new Date(), metaObject);
this.setFieldValByName("gmtModified",new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
System.out.println("添加更新时间");
this.setFieldValByName("gmtModified",new Date(), metaObject);
}
}
对应实体类,则在gmtCreate与 gmtModified属性字段上加上@TableField(fill=FieldFill.INSERT)与@TableField(fill=FieldFill.INSERT_UPDATE)注解
@Data
@EqualsAndHashCode(callSuper =false)
public class UmsMember implements Serializable {
private static final long serialVersionUID =1L;
@TableId(value ="id", type =IdType.AUTO)
private Long id;
private String username;
private String password;
/**
* 头像
*/
private String icon;
/**
* 邮箱
*/
private String email;
/**
* 昵称
*/
private String nickName;
/**
* 备注信息
*/
private String note;
/**
* 创建时间
*/
@TableField(fill=FieldFill.INSERT)
private Date gmtCreate;
/**
* 最后登录时间
*/
private Date loginTime;
/**
* 帐号启用状态:0->禁用;1->启用
*/
private Integer status;
/**
* 更新时间
*/
@TableField(fill=FieldFill.INSERT_UPDATE)
private Date gmtModified;
}