接口 MetaObjectHandler


public interface MetaObjectHandler
元对象字段填充控制器抽象类,实现公共字段自动写入

所有入参的 MetaObject 必定是 entity 或其子类的 MetaObject

从以下版本开始:
2016-08-28
作者:
hubin
  • 方法详细资料

    • openInsertFill

      default boolean openInsertFill()
      是否开启了插入填充
    • openUpdateFill

      default boolean openUpdateFill()
      是否开启了更新填充
    • insertFill

      void insertFill​(org.apache.ibatis.reflection.MetaObject metaObject)
      插入元对象字段填充(用于插入时对公共字段的填充)
      参数:
      metaObject - 元对象
    • updateFill

      void updateFill​(org.apache.ibatis.reflection.MetaObject metaObject)
      更新元对象字段填充(用于更新时对公共字段的填充)
      参数:
      metaObject - 元对象
    • setFieldValByName

      default MetaObjectHandler setFieldValByName​(String fieldName, Object fieldVal, org.apache.ibatis.reflection.MetaObject metaObject)
      通用填充
      参数:
      fieldName - java bean property name
      fieldVal - java bean property value
      metaObject - meta object parameter
    • getFieldValByName

      default Object getFieldValByName​(String fieldName, org.apache.ibatis.reflection.MetaObject metaObject)
      get value from java bean by propertyName
      参数:
      fieldName - java bean property name
      metaObject - parameter wrapper
      返回:
      字段值
    • setInsertFieldValByName

      @Deprecated default MetaObjectHandler setInsertFieldValByName​(String fieldName, Object fieldVal, org.apache.ibatis.reflection.MetaObject metaObject)
      insert 时填充,只会填充 fill 被标识为 INSERT 与 INSERT_UPDATE 的字段
      参数:
      fieldName - java bean property name
      fieldVal - java bean property value
      metaObject - meta object parameter
      从以下版本开始:
      3.0.7
    • setUpdateFieldValByName

      @Deprecated default MetaObjectHandler setUpdateFieldValByName​(String fieldName, Object fieldVal, org.apache.ibatis.reflection.MetaObject metaObject)
      update 时填充,只会填充 fill 被标识为 UPDATE 与 INSERT_UPDATE 的字段
      参数:
      fieldName - java bean property name
      fieldVal - java bean property value
      metaObject - meta object parameter
      从以下版本开始:
      3.0.7
    • setFieldValByName

      @Deprecated default MetaObjectHandler setFieldValByName​(String fieldName, Object fieldVal, org.apache.ibatis.reflection.MetaObject metaObject, com.baomidou.mybatisplus.annotation.FieldFill fieldFill)
      Common method to set value for java bean.
      参数:
      fieldName - java bean property name
      fieldVal - java bean property value
      metaObject - meta object parameter
      fieldFill - 填充策略枚举
      从以下版本开始:
      3.0.7
    • isFill

      @Deprecated default boolean isFill​(String fieldName, Object fieldVal, org.apache.ibatis.reflection.MetaObject metaObject, com.baomidou.mybatisplus.annotation.FieldFill fieldFill)
      已过时。
      3.3.0
      填充判断
    • 如果是主键,不填充
    • 根据字段名找不到字段,不填充
    • 字段类型与填充值类型不匹配,不填充
    • 字段类型需在TableField注解里配置fill: @TableField(value="test_type", fill = FieldFill.INSERT), 没有配置或者不匹配时不填充
    • v_3.1.0以后的版本(不包括3.1.0),子类的值也可以自动填充,Timestamp的值也可以填入到java.util.Date类型里面
      参数:
      fieldName - java bean property name
      fieldVal - java bean property value
      metaObject - meta object parameter
      fieldFill - 填充策略枚举
      返回:
      是否进行填充
      从以下版本开始:
      3.0.7
    • findTableInfo

      default TableInfo findTableInfo​(org.apache.ibatis.reflection.MetaObject metaObject)
      find the tableInfo cache by metaObject

      获取 TableInfo 缓存
      参数:
      metaObject - meta object parameter
      返回:
      TableInfo
      从以下版本开始:
      3.3.0
    • strictInsertFill

      default <T,​ E extends T> MetaObjectHandler strictInsertFill​(org.apache.ibatis.reflection.MetaObject metaObject, String fieldName, Class<T> fieldType, E fieldVal)
      参数:
      metaObject - metaObject meta object parameter
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictInsertFill

      default <T,​ E extends T> MetaObjectHandler strictInsertFill​(org.apache.ibatis.reflection.MetaObject metaObject, String fieldName, Supplier<E> fieldVal, Class<T> fieldType)
      参数:
      metaObject - metaObject meta object parameter
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictInsertFill

      default MetaObjectHandler strictInsertFill​(TableInfo tableInfo, org.apache.ibatis.reflection.MetaObject metaObject, List<StrictFill<?,​?>> strictFills)
      参数:
      metaObject - metaObject meta object parameter
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictUpdateFill

      default <T,​ E extends T> MetaObjectHandler strictUpdateFill​(org.apache.ibatis.reflection.MetaObject metaObject, String fieldName, Supplier<E> fieldVal, Class<T> fieldType)
      参数:
      metaObject - metaObject meta object parameter
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictUpdateFill

      default <T,​ E extends T> MetaObjectHandler strictUpdateFill​(org.apache.ibatis.reflection.MetaObject metaObject, String fieldName, Class<T> fieldType, E fieldVal)
      参数:
      metaObject - metaObject meta object parameter
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictUpdateFill

      default MetaObjectHandler strictUpdateFill​(TableInfo tableInfo, org.apache.ibatis.reflection.MetaObject metaObject, List<StrictFill<?,​?>> strictFills)
      参数:
      metaObject - metaObject meta object parameter
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictFill

      default MetaObjectHandler strictFill​(boolean insertFill, TableInfo tableInfo, org.apache.ibatis.reflection.MetaObject metaObject, List<StrictFill<?,​?>> strictFills)
      严格填充,只针对非主键的字段,只有该表注解了fill 并且 字段名和字段属性 能匹配到才会进行填充(null 值不填充)
      参数:
      insertFill - 是否验证在 insert 时填充
      tableInfo - cache 缓存
      metaObject - metaObject meta object parameter
      strictFills - 填充信息
      返回:
      this
      从以下版本开始:
      3.3.0
    • fillStrategy

      default MetaObjectHandler fillStrategy​(org.apache.ibatis.reflection.MetaObject metaObject, String fieldName, Object fieldVal)
      填充策略,默认有值不覆盖,如果提供的值为null也不填充
      参数:
      metaObject - metaObject meta object parameter
      fieldName - java bean property name
      fieldVal - java bean property value of Supplier
      返回:
      this
      从以下版本开始:
      3.3.0
    • strictFillStrategy

      default MetaObjectHandler strictFillStrategy​(org.apache.ibatis.reflection.MetaObject metaObject, String fieldName, Supplier<?> fieldVal)
      严格模式填充策略,默认有值不覆盖,如果提供的值为null也不填充
      参数:
      metaObject - metaObject meta object parameter
      fieldName - java bean property name
      fieldVal - java bean property value of Supplier
      返回:
      this
      从以下版本开始:
      3.3.0