Open
Description
<select id="selectList" resultType="com.yxy.vo.PersonVO"
parameterType="com.yxy.dto.PersonListDto">
SELECT
t1.*,
t2.name as tenantName
FROM
person t1, tenant_extend t2
WHERE
t1.status = 0
and t1.tenant_id = t2.id
<if test="search != null and search != ''">
and t1.name like concat('%',#{search},'%')
</if>
and t1.tenant_id in
<foreach item="item" index="index" collection="scopedTenantIds"
open="(" separator=" , " close=")">
'${item}'
</foreach>
</select>
以上是一个自定义的select查询,返回结果是一个自定义的 PersonVO类,PersonVO类定义如下:
@Data
public class PersonVO extends Person {
private String tenantName;//所属租户名称
}
继承自model类Person,定义如下:
package com.yxy.model;
import com.yxy.config.SensitiveInformationTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import tk.mybatis.mapper.annotation.ColumnType;
import java.util.Date;
import java.math.BigDecimal;
import javax.persistence.*;
@Data
@Entity
@Table(name = "person")
public class Person {
//主键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
//租客id
@Column(name = "tenant_id")
private Long tenantId;
//姓名
@Column(name = "name")
private String name;
//性别
@Column(name = "gender")
private String gender;
//手机号
@Column(name = "mobile")
@ColumnType(typeHandler = SensitiveInformationTypeHandler.class, jdbcType = JdbcType.VARCHAR)
private String mobile;
//身份证号
@Column(name = "id_card_no")
@ColumnType(typeHandler = SensitiveInformationTypeHandler.class, jdbcType = JdbcType.VARCHAR)
private String idCardNo;
//图片路径
@Column(name = "img_url")
private String imgUrl;
//是否领导,0不是 1是
@Column(name = "is_leader")
private Integer isLeader;
//年龄
@Column(name = "age")
private Integer age;
//0 有效 1 逻辑删除
@Column(name = "status")
private Long status;
//描述(保留字段)
@Column(name = "misc")
private String misc;
//创建者id
@Column(name = "create_user_id")
private Long createUserId;
//创建人姓名
@Column(name = "create_user_name")
private String createUserName;
//创建时间
@Column(name = "create_date")
private Date createDate;
//修改人id
@Column(name = "update_user_id")
private Long updateUserId;
//修改人姓名
@Column(name = "update_user_name")
private String updateUserName;
//更新时间
@Column(name = "update_date")
private Date updateDate;
}
大家可以看到, 手机号和身份证号字段 使用了typeHandler做特殊处理,即保存时加密,查询时解密, 目前发现调用tkmybatis自带的selectAll()方法可以查询出解密后的手机号和身份证号,但是使用 自定义的selectList方法却只查询到加密的手机号,并没有自动解密,
我该怎么办?麻烦提点下,谢谢
Metadata
Metadata
Assignees
Labels
No labels