mybatis-dynamic-sql 升级遇到的坑

背景

因某些原因需要将项目中mybatis-dynamic-sql 升级,从远古版本的1.2.1 升级到1.5.2
MyBatis Dynamic SQL change log

遇到的问题

1.空where导致的NonRenderingWhereClauseException

旧代码中有部分空where条件或者可能导致where条件为空的代码
如:

.where(PermissionDSS.type, isEqualToWhenPresent(type))
.where()

这个问题在2022年已经有人遇到并且提了issue,解决方案也在这里面,在官方文档中也有说明:地址
在这里插入图片描述
主要就是在全局或者单个逻辑中增加

.configureStatement(c -> c.setNonRenderingWhereClauseAllowed(true))

2.renderWithTableAlias弃用

原方法的renderWithTableAlias已弃用,推荐使用render

@deprecated Please replace this method by overriding the more general "render" method

原代码

	@Override
    public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
        return "sum( to_number(" + column.renderWithTableAlias(tableAliasCalculator) + "))";
    }

新代码

	@Override
    public FragmentAndParameters render(RenderingContext renderingContext) {
        return column.render(renderingContext).mapFragment(s ->
                "sum( to_number(" + s + "))"
        );
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值