JPQL-запрос не дает результатов при добавлении дополнительного условия ИЛИ - PullRequest
0 голосов
/ 11 июня 2018

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

WHERE site.siteID = ?3 AND items.itemID = ?4  AND  ( ?5 MEMBER OF itemData.listValue )

. Я пробовал его для определенного сайта и itemID, и я получаю 3 результата обратно, что является правильным.Теперь я попытался также включить список списков, но это не работает:

WHERE site.siteID = ?3 AND items.itemID = ?4  AND  ( ?5 MEMBER OF itemData.listValue OR ?6 MEMBER OF itemListData.listValue)

Это не вызывает исключение, оно просто возвращает 0 результатов (параметры 5 и 6 одинаковызначение).

Вот (укороченные) соответствующие объекты:

public Site{
    private Item item;
    private List<Item> items;
}

public Item{
    private List<String> listValue;
}

Итак, на самом деле я пытаюсь выбрать все объекты, для которых переданное значение находится либо в item.listValueИЛИ в любом из items.listValue.Меня сбивает с толку то, что добавление условия OR уменьшает набор результатов.Я бы предпочел модель данных, в которой Site.item перемещен в список элементов, но я, к сожалению, не могу изменить сущности.Любая помощь с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...