1、建议一定使用字段
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添加更新
到此这篇关于mybatis plus表的创建时间和修改时间的实现方法的文章就介绍到这了,更多相关mybatis plus创建时间和修改时间内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!