51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

mybatis-plus允许自定义handlerType的set

与有肝胆人共事,从无字句处读书。------周恩来

今天看mybatis-plus源码发现了UpdateWrapper中的set竟然有一两个重载没有在官方文档写到:

image-20211226202811765

一看官方示例,发现它可以临时自定义typeHandler,也就是类型处理器,以及属性所在的java类型和数据库中字段的数据类型(jdbcType)

例如官方示例传入的:

image-20211226203053086

我们也可以像方法注释那样传入javaTypejdbcType

|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | hljs java // 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); |

可以看到是成功运行

image-20211226203650425

赞(0)
未经允许不得转载:工具盒子 » mybatis-plus允许自定义handlerType的set