与有肝胆人共事,从无字句处读书。——周恩来
今天看mybatis-plus
源码发现了UpdateWrapper
中的set
竟然有一两个重载没有在官方文档写到:
一看官方示例,发现它可以临时自定义typeHandler
,也就是类型处理器,以及属性所在的java
类型和数据库中字段的数据类型(jdbcType
)
例如官方示例传入的:
我们也可以像方法注释那样传入javaType
和jdbcType
// wrapper typeHandler 测试 LambdaUpdateWrapper<User> wrapper = Wrappers.<User>lambdaUpdate().set(User::getWallets, Arrays.asList(new Wallet("Tom", Arrays.asList(new Currency("RMB", 1000d)))), "javaType=java.util.List,jdbcType=VARCHAR,typeHandler=com.baomidou.mybatisplus.samples.typehandler.WalletListTypeHandler"); wrapper.eq(User::getId, 2L); Assertions.assertEquals(userMapper.update(new User().setAge(99), wrapper), 1);
可以看到是成功运行