Я хочу объединить два списка предикатов в одном запросе, используя критерии JPA - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть два списка предикатов, и я хочу объединить эти два списка: для первого списка я хочу, чтобы это было «и» между предикатами.и для второго я хочу, чтобы это было "или" между предикатами.ниже моего кода, но у меня есть исключение nullPointerException

CriteriaBuilder criteriaBuilder = em.unwrap(Session.class).getCriteriaBuilder();
    CriteriaQuery<SomeCLass> criteriaQuery = criteriaBuilder.createQuery(SomeCLass.class);
    Root<SomeCLass> root = criteriaQuery.from(SomeCLass.class);
    Predicate[] firstList = new Predicate[predicateListFirst.size()];
    Predicate[] SecondList = new Predicate[predicateListSecond.size()];
    criteriaQuery.where(
            criteriaBuilder.and(criteriaBuilder.and(firstList), criteriaBuilder.or(SecondList)));
    Query query = em.unwrap(Session.class).createQuery(criteriaQuery);

У меня исключение нулевого указателя в последней строке.но если я попытаюсь использовать только первый список, он будет работать нормально

...