mybatis-plus自动化生成代码情形下对自定义typeHandler的支持


mybatis使用typeHandler的方法不具体展开了,实例很多

针对mybatis-plus框架下自动生成代码情形下,生成的mapper.xml是无字段映射resultMap的。

这时会导致之前定义的typeHandler拦截转换字段发生很多怪异问题,比如全拦或都不拦截了。

针对这个问题需要在实体类上做点文章,我们想对某种类型下其中个别字段进行处理的话(比如:String类型的字段,需要对电话、身份证脱敏,而诸如姓名、地址不作处理),

这时需要配置如下:

1、实体类配置注解:

@MappedJdbcTypes(includeNullJdbcType = false, value = JdbcType.VARCHAR)

2、处理字段注解

@TableField(jdbcType = JdbcType.VARCHAR, typeHandler = XXXTypeHandler.class)
@Data
@EqualsAndHashCode(callSuper = false)
@MappedJdbcTypes(includeNullJdbcType = false, value = JdbcType.VARCHAR) // 只针对jdbcType为varchar的字段进行mapping处理,勿略jdbcType设置为空的字段
@TableName(value = "t_user", autoResultMap = true)
public class SchoolData implements Serializable {

    private static final long serialVersionUID=1L;

    private Long id;

    private String applicantName;

    @TableField(jdbcType = JdbcType.VARCHAR, typeHandler = XXXTypeHandler.class)
    private String applicantPhone;


}

另注意:autoResultMap = true 是对查询结果集做逆转换处理时的自动映射

 

PS:后续补充完整


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM