网站有哪几种类型,如何让百度分享按钮在网站每个页面都有,信息流优化师简历怎么写,免费看视频的软件是什么背景
在项目中经常遇到一些数据需要自动填充#xff0c;填充方法都是同一种规则#xff0c;例如创建时间等。
1 自动填充方法配置
1.1 实体类添加注解 1.2 在handler包下实现元对象处理器接口 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import o…背景
在项目中经常遇到一些数据需要自动填充填充方法都是同一种规则例如创建时间等。
1 自动填充方法配置
1.1 实体类添加注解 1.2 在handler包下实现元对象处理器接口 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Date;Component
public class MyMetaObjectHandler implements MetaObjectHandler {private static final Logger LOGGER LoggerFactory.getLogger(MyMetaObjectHandler.class);Overridepublic void insertFill(MetaObject metaObject) {LOGGER.info(start insert fill ....);this.setFieldValByName(createTime, new Date(), metaObject);this.setFieldValByName(updateTime, new Date(), metaObject);}Overridepublic void updateFill(MetaObject metaObject) {LOGGER.info(start update fill ....);this.setFieldValByName(updateTime, new Date(), metaObject);}
}1.3 在测试文件中进行测试 问题
在进行测试时发现配置的MyMetaObjectHandler并没有生效即没有对数据库中的create_time和update_time进行自动填充。
原因及解决措施
1 Date对象使用import的包不一致
如图2所示MyMetaObjectHandler.java中Date使用的包是import java.util.Date;而实体类User.java中Date使用的包是import java.sql.Date,从而导致无法自动填充解决方法 修改实体类User.java中的包为import java.util.Date;
2 没有添加Component注解
如图2所示没有在MyMetaObjectHandler类上添加 Component 注解。
3 启动类的位置不正确 如图所示启动类DemoApplication.java的位置应该和entity、handler、mapper包在同一路径下如果将启动类放在entity等包的下一级目录下就会出现无法自动填充问题。