使用MetaObjectHandler设置了创建和更新时间,xml文件中对创建和更新时间的<if>判断却进不去

本文探讨了使用MyBatis-Plus时自定义Handler的问题,特别是关于创建和更新时间自动处理与XML中<if>标签冲突的情况。作者通过对源码的调试发现,MyBatis-Plus在处理SQL语句时会先执行源码中的SQL预处理步骤,之后才执行自定义Handler中的逻辑,这导致了<if>标签内的条件判断未能生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我用mybatis-plus自定义的handler,在创建和更新是自动帮我处理创建时间和更新时间

 但是我发现我xml中的<if>判断标签却进不去

后面我通过在源码改造sql的地方和我自定义的handler处都打了断电,发现源码是先处理sql语句,然后在执行我自定义的handler,然后再进行一个赋值操作,所以才导致<if>标签没有进去

总结 

没什么好总结的,就是先弄好sql语句和占位符,然后在进行一个赋值操作,我觉得这就是一个BUG,不应该是先把所有赋值相关的代码先执行,然后在执行这些判断逻辑吗?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值