当前使用版本(必填,否则不予处理)

3.4.0

该问题是如何引起的?(确定最新版也有问题再提!!!)

typeHandler 在查询时无法更改查询条件

重现步骤(如果有就写完整)

修改自 demo 示例

SampleTest.java

User Jone = userMapper.selectOne(new QueryWrapper<User>().lambda().eq(User::getWallet, "asdasd"));
        System.err.println(Jone);
data-h2.sql

INSERT INTO user (id, name, age, email, wallet, other_info) VALUES
(1, 'Jone', 18, 'test1@baomidou.com', 'qweqwe', '{
        "sex": "男",
        "city": "南昌"
}'),
(2, 'Jack', 20, 'test2@baomidou.com', 'asdasd', '{
        "sex": "男",
        "city": "青岛"
}');

User.java

@TableField(typeHandler = TestTypeHandler.class)
private String wallet;
TestTypeHandler.java
@MappedTypes({String.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class TestTypeHandler extends BaseTypeHandler<String> {

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
        if ("qweqwe".equals(parameter)) {
            ps.setString(i, "asdasd");
        } else {
            ps.setString(i, "qweqwe");
        }
    }

  ...
}

日志输出

2020-09-14 14:39:27.510 DEBUG 35116 --- [           main] c.b.m.s.t.mapper.UserMapper.selectOne    : ==>  Preparing: SELECT id,name,age,email,wallet FROM user WHERE (wallet = ?)
2020-09-14 14:39:27.543 DEBUG 35116 --- [           main] c.b.m.s.t.mapper.UserMapper.selectOne    : ==> Parameters: asdasd(String)
2020-09-14 14:39:27.574 DEBUG 35116 --- [           main] c.b.m.s.t.mapper.UserMapper.selectOne    : <==      Total: 1
User(id=2, name=Jack, age=20, email=test2@baomidou.com, wallet=asdasd)

正常结果不应该是查询条件被修改为qweqwe查询吗

Comment From: miemieYaho

你自己写错了

Comment From: lwQin

@miemieYaho 请问是哪里写的有问题

Comment From: miemieYaho

TypeHandler

Comment From: lwQin

@miemieYaho 找了半天没发现哪里有问题。。还请明示

Comment From: miemieYaho

百度 BaseTypeHandler

Comment From: canhui6666

@miemieYaho 找了半天没发现哪里有问题。。还请明示

解决了么

Comment From: VampireAchao

Hello,

Could you provide a small repro project? We may also need instruction about JVM configuration to reproduce the issue.

Regards, VampireAchao