перевести sql в критерииBuilder - PullRequest
0 голосов
/ 10 апреля 2020
select * 
from db_object o 
where o.value not like all (array ['%'||chr(32)||chr(32)||'%', '%'||chr(9)||'%', '%'||chr(10)||'%', '%'||chr(13)||'%'])

Привет всем, я не знаю, как изменить sql запрос в CriteriaBuilder. Я застрял на этой строке:

where o.value not like all (array ['%'||chr(32)||chr(32)||'%', '%'||chr(9)||'%', '%'||chr(10)||'%', '%'||chr(13)||'%'])

Буду очень признателен за вашу помощь или хотя бы ссылки на интересные материалы.

1 Ответ

0 голосов
/ 10 апреля 2020

может кому-то поможет

CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<BaseObject> criteria = builder.createQuery(BaseObject.class);
Root<BaseObject> rootCriteria = criteria.from(BaseObject.class);
List<Predicate> criteriaList = new ArrayList<>();
criteriaList.add(builder.like(rootCriteria.get("value"), "%  %"));
criteriaList.add(builder.like(rootCriteria.get("value"), "%\n%"));
criteriaList.add(builder.like(rootCriteria.get("value"), "%\t%"));
criteriaList.add(builder.like(rootCriteria.get("value"), "%\r%"));
criteria.select(rootCriteria).where(
        builder.or(criteriaList.toArray(new Predicate[criteriaList.size()]))
).orderBy(builder.asc(rootCriteria.get("objectId")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...