MyBatis или критерии - PullRequest
       70

MyBatis или критерии

0 голосов
/ 24 октября 2019
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 голосов
/ 24 октября 2019

Этот тип запроса не прост с более старым временем выполнения генератора. Вам нужно будет думать о вашем запросе немного по-другому, чтобы он работал. Например, с булевой алгеброй вы можете сказать, что ...

(a | b | c) & d & e

функционально эквивалентно

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

Запись, где условия со второй формой возможны со старой средой выполнения, но этодействительно ужасно.

Я бы посоветовал вам перейти на использование более новой среды выполнения MyBatis3DynamicSQL для генерации вашего кода. С помощью этой новой среды выполнения вы можете написать предложение where точно так, как вы хотите. Смотрите эти страницы для получения дополнительной информации о новой среде выполнения:

...