前言
在日常开发工作中,发现@TableField注解没有typeHandler属性。
问题发现
产品新需求,要求给敏感字段进行加解密,这种情况当然插入时需要加密,查询再进行解密,百度了很久的解决方案最后采用BaseTypeHandler进行处理。由于是在已开发的代码上进行处理,所以第一时间想到通过注解的方式比较简单,在使用过程中发现没有注解typeHandler属性,第一时间定位版本太低。然后打算用xml方式进行处理,猜想调用Mybatis自带方法可能不会进行处理,最后经过测试,查询可以解密,新增不能加密,xml方式加解密没问题,特此记录。
问题解决
低版本可以在注解中使用el属性中追加typeHandler。
@Data
@TableName("Student")
public class StudentEntity implements Serializable {
/**
* 银行账号
*/
@TableField(el = "idCard,typeHandler=com.sys.oop.SM4TypeHandler")
private String idCard;
}
对于 el 解释为:映射为原生 #{ … } 逻辑,相当于写在 xml 里的 #{ … } 部分。
哎~,只能说掌握的还不够多把。。。