Проблема с созданием предиката QueryDSL из объекта Java, имеющего поле списка

#java #spring #querydsl #predicate

#java #spring #querydsl #предикат

Вопрос:

Имея следующий класс запроса, получающий :

 public class WRequest{
    Integer Id        
    String name;
    List<Integer> RelatedIds;
}
 

Я пытаюсь создать предикат QueryDSL, чтобы передать его в метод spring data findAll():

 BooleanBuilder builder = new BooleanBuilder();
Optional.ofNullable(wrequest.getId())
        .map(QWRequest.wrequest.id::eq).ifPresent(builder::and);
Optional.ofNullable(wrequest.getName())
        .map(QWRequest.wrequest.name::eq).ifPresent(builder::and);
 

Приведенный выше фрагмент кода работает только для параметров String / Integer, однако я не могу создать предикат для включения в результаты любого из значений в списке RelatedIds . Как создать предикат QueryDSL из объекта, который имеет поле списка?

Класс QWRequest — это автоматически созданный тип запроса QueryDSL из для класса Wrequest.

Комментарии:

1. Вопрос немного расплывчатый, но, возможно, вы имеете в виду .map(QWRequest.wrequest.relatedIds.any()::eq) ? Или, может .map(QWRequest.wrequest.relatedIds::contains) быть?