手动写sql时,typeHandler解密操作失效

问各位大🐂一个问题,对数据进行加解密为啥手写sql,不进行解密,是因为手写sql没走框架吗?
实体类

@ApiModel(value = "基础用户表")
@Data
@TableName(autoResultMap = true)
public class SysUser extends CheckData implements Serializable {
    /**
     * 自增主键
     */
    @ApiModelProperty(value = "自增主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * uuid,关联使用
     */
    @ApiModelProperty(value = "uuid,关联使用")
    private String uuid;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String username;

    /**
     * 密码(加密)
     */
    @ApiModelProperty(value = "密码(加密)")
    @TableField(typeHandler = Sm4EncryptHandler.class)
    private String password;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名")
    private String alias;

    /**
     * 是否生效1生效|0
     */
    @ApiModelProperty(value = "是否生效1生效|0")
    private String active;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    @TableField(typeHandler = Sm4EncryptHandler.class)
    private String name;

    /**
     * 移动电话
     */
    @ApiModelProperty(value = "移动电话")
    @TableField(typeHandler = Sm4EncryptHandler.class)
    private String mobilePhone;
}

主要代码
使用原生查询方法可以进行解密
自己定义手写sql无法进行解密

        SysUser sysUser = sysUserMapper.selectById(96);

        String phone = sysUserMapper.selectPhone(413L);

        SysUser s = sysUserMapper.selectPhone2(413L);

mapper

@Select("select id,mobile_phone,name from sys_user where id=#{id}")
    SysUser selectPhone2(Long id);

    @Select("select mobile_phone from sys_user where id=#{id}")
    String selectPhone(Long id);

运行结果及报错内容

只有mybatisplus原生的查询能正常解密
另外两种都没有进行解密,有大🐂能解释一下吗?

解决了么?我这有个方案

img

希望能够帮到你和后续有此类问题的同学

img

我理解是你原生的查询出来是要自己手动在进行解密操作的吧,
mybatis-plus这个注解不是集成了映射解密吗