Ответ 1
Предполагая соответствующие сопоставления по всем вышеперечисленным, запрос, который вы ищете, это:
select p
from Player as p
left join p.inventory as i
left join i.enchantments as e
where e.isSuperiorEnchantment = 1
У меня есть объекты домена Hibernate, которые выглядят следующим образом:
class Player {
List<Item> inventory;
}
class Item {
List<Enchantment> enchantments;
}
class Enchantment {
boolean isSuperiorEnchantment;
}
Мне нужно построить запрос HQL, который возвращает мне список всех игроков, у которых есть хотя бы один элемент с заклинанием на нем с установленным флагом isSuperiorEnchantment
. Я не могу, чтобы жизнь меня определяла способ выразить это в HQL.
Любые идеи?
Предполагая соответствующие сопоставления по всем вышеперечисленным, запрос, который вы ищете, это:
select p
from Player as p
left join p.inventory as i
left join i.enchantments as e
where e.isSuperiorEnchantment = 1