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