Hibernate Ограничение для поиска с подобным предложением в списке - PullRequest
0 голосов
/ 23 февраля 2020

Мне нужна помощь с ограничением критериев гибернации.

Поскольку мы знаем, что мы используем ограничение IN со списком, т. Е.

Criteria criteria = session.createCriteria(Student.class);
List<String> studentNames= new ArrayList();
criteria.add(Restrictions.in("name",studentNames);
List list = criteria.list();

, и используем так, как мы используем ограничение, например,

String matchString = "Suraj Kumar";
criteria.add(Restrictions.like(
"studentName", matchString));

Проблема: я хочу, чтобы каждый элемент в списке был найден с предложением "LIKE". Если мы используем предложение IN, то оно сравнивает элемент со всеми элементами, переданными в предложении IN, и это сравнение основано на равенстве.

Но требование состоит в том, чтобы каждый элемент в списке проверялся с помощью предложения LIKE и соответствующего столбца базы данных.

Помогите мне создать ограничение критерия гибернации с тем же.

Спасибо

1 Ответ

0 голосов
/ 23 февраля 2020

Вы можете попробовать использовать дизъюнкцию, которую можно использовать, если у вас несколько условий ИЛИ.

    Criteria criteria = session.createCriteria(Student.class);
    List<String> studentNames= new ArrayList();
    Disjunction disj = Restrictions.disjunction();
    for (String value : studentNames) {
        disj.add(Restrictions.like("name", value));
    }
    criteria.add(disj);
    List list = criteria.list();
...