MyBatis的“或”标准

时间:2019-10-24 13:11:38

标签: mysql sql mybatis mybatis-generator

select
    *
from person
WHERE (id like '%test%'
   or name like '%test%' 
    or location like '%test%'
 )
 and date >= '2019-10-24 00:00:00'
 and date < '2019-10-26 00:00:00' 

我该如何用Criteria对象构造它?

MyExample example = new MyExample();
MyExample.Criteria criteria = example.createCriteria();

1 个答案:

答案 0 :(得分:0)

使用较早的生成器运行时,这种类型的查询并不容易。您需要对查询有所不同才能使其工作。例如,使用布尔代数,您可以说...

(a | b | c) & d & e

在功能上等同于

(a & d & e) | (b & d & e) | (c & d & e)

在旧的运行时中可以写出第二种形式的条件,但这确实很丑。

我建议您更改为使用更新的MyBatis3DynamicSQL运行时来生成代码。使用新的运行时,您可以完全按照自己的意愿编写where子句。有关新运行时的更多信息,请参见以下页面: