mybatis plus创建时间和修改时间
chencaw 人气:51、建议一定使用字段
gmt_create和gmt_modified
字段的类型datetime
方法一、在实体类的注解上添加操作
(1)创建对应的数据表,注意字段的类型datetime
(2)在gmt_create和gmt_modified字段上面添加注解@TableField(XXX)
(3)添加处理器
(4)内容如下
注意如有需要对应数据表,修改为:gmtCreate和gmtModified
@Component //编写处理器Handler来进行自动填充,把下面的代码直接写在自己的handler包内 public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { //属性名称,不是字段名称 this.setFieldValByName("gmtCreate", LocalDateTime.now(), metaObject); this.setFieldValByName("gmtModified", LocalDateTime.now(), metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("gmtModified", LocalDateTime.now(), metaObject); } }
注意,推荐的写法如下:
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用) // 或者 this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐) // 或者 this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug) // 或者 this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐) } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐) // 或者 this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐) // 或者 this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug) } }
方法二:不建议使用数据库方法
(1)设置默认为CURRENT_TIMESTAMP
(2)同时对gmt_modified添加更新
加载全部内容