SpringBoot--------Restful([夢學谷]十二)


👉 mybatis-plus-sample-auto-fill-metainfo 
實現元對象處理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
註解填充字段 @TableField(.. fill = FieldFill.INSERT) 生成器策略部分也可以配置!
public class User {

    // 注意!這裏需要標記爲填充字段
    @TableField(.. fill = FieldFill.INSERT)
    private String fillField;

    ....
}
自定義實現類 MyMetaObjectHandler
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler.class);

    @Override
    public void insertFill(MetaObject metaObject) {
        LOGGER.info("start insert fill ....");
        this.setFieldValByName("operator", "Jerry", metaObject);//版本號3.0.6以及之前的版本
        //this.setInsertFieldValByName("operator", "Jerry", metaObject);//@since 快照:3.0.7.2-SNAPSHOT, @since 正式版暫未發佈3.0.7
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        LOGGER.info("start update fill ....");
        this.setFieldValByName("operator", "Tom", metaObject);
        //this.setUpdateFieldValByName("operator", "Tom", metaObject);//@since 快照:3.0.7.2-SNAPSHOT, @since 正式版暫未發佈3.0.7
    }
}
注意事項:
字段必須聲明TableField註解,屬性fill選擇對應策略,該申明告知 Mybatis-Plus 需要預留注入 SQL 字段
填充處理器MyMetaObjectHandler 在 Spring Boot 中需要聲明@Component 注入
必須使用父類的setFieldValByName()或者setInsertFieldValByName/setUpdateFieldValByName方法,否則不會根據註解FieldFill.xxx來區分
public enum FieldFill {
    /**
     * 默認不處理
     */
    DEFAULT,
    /**
     * 插入填充字段
     */
    INSERT,
    /**
     * 更新填充字段
     */
    UPDATE,
    /**
     * 插入和更新填充字段
     */
    INSERT_UPDATE
}
在 GitHub 上編輯此頁  
上次更新: 2019-6-14 11:29:00
← 字段類型處理器 
Sql 注入器 → 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章