mybatis 自动添加字段避坑
① 注入数据类型要和实体数据类型一致
/**
* 自定义元对象处理器
* 公共字段自动填充
*/
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("公共字段自动填充[insert]...");
log.info(metaObject.toString());
this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
metaObject.setValue("updateTime", LocalDateTime.now());
}
}
@TableName(value = "consumer")
@Data
public class Consumer {
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}
② 如果自己用的是mybatis,一定要继承myabtis-plus的BaseMapper接口,否则注入不生效。
@Mapper
public interface ConsumerMapper extends BaseMapper<Consumer> {
Consumer login(@Param("username") String name, @Param("password") String pwd);
void signUp(Consumer consumer);
int selectByName(String name);
}