mybatis 使用criteria 查询xx and ( xx or xx)形式的sql

如题所述

第1个回答  2022-06-10
看了一下市面上的文章和我的需求差的不多,但是不是我用不起来,后来自己去测试终于找到了我自己需要的方法。

前面都是一样的,使用criteria的andEqualTo方法拼接sql,最后的or是怎么实现呢?

这种情况下你一个criteria是实现不了的,你再新建一个criteria,比如说他叫criteria2,然后criteria2.orEqualTo去实现你自己的OR实现,最后是这样的example.and(criteria2),这样输出的sql就是select * from 表 where ( ( valid = 1 ) and ( a=1 or b =2 ))。我觉得这样还是挺简单的。

criteria1.andEqualTo(valid= 1);

criteria2.orEqualTo(a=1);

criteria2.orEqualTo(b=1);

最后example.and(criteria2),最后把example放进去执行就可以得到select * from 表 where ( ( valid = 1 ) and ( a=1 or b =2 ))这样的sql了。
相似回答
大家正在搜