标识公共字段及其策略
//插入和更新时使用填充策略
@TableField(fill=FieldFill.INSERT_UPDATE)
private String name;
自定义公共字段处理器
@Component
public class MyMetaObjHandler extends MetaObjectHandler{
/**
* 插入操作自动填充
*/
@Override
public void insertFill(MetaObject metaObject) {
Object val = getFieldValByName("name", metaObject);
if (val=="" || val==null) {
metaObject.setValue("name", "unkown");
}
}
/**
* 修改操作自动填充
*/
@Override
public void updateFill(MetaObject metaObject) {
Object val = getFieldValByName("name", metaObject);
if (val!="" && val!=null) {
metaObject.setValue("name", "Grt-"+val);
}
}
}
相应配置
<!-- 自定义的公共字段填充处理器 -->
<bean id="myMetaObjHandler" class="com.ezerbel.mp.metaObjHandler.MyMetaObjHandler"></bean>
注入到全局配置中
<bean id="mpGlobalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
<!-- 表名、字段名、是否使用下划线命名(默认 true: 数据库下划线命名) -->
<property name="dbColumnUnderline" value="true"></property>
<!-- 全局的主键策略 -->
<property name="idType" value="0"></property>
<!-- 全局的表前缀配置 -->
<property name="tablePrefix" value="tb_"></property>
<!-- 注入公共字段填充处理器 -->
<property name="metaObjectHandler" ref="myMetaObjHandler"></property>
</bean>