10
que tienen objetos de dominio de Hibernate que tiene este aspecto:HQL y uno-a-muchas consultas
class Player {
List<Item> inventory;
}
class Item {
List<Enchantment> enchantments;
}
class Enchantment {
boolean isSuperiorEnchantment;
}
necesito para construir una consulta HQL que vuelve a mí una lista de todos los jugadores que tienen al menos un elemento con un encantamiento que tiene establecido el indicador isSuperiorEnchantment
. No puedo entender cómo expresar esto en HQL.
¿Alguna idea?
Gracias, esto funcionó muy bien. Tuve que acordarme de agregar una "p de selección" al principio, ¡pero de lo contrario es exactamente lo que necesitaba! –
Estoy recién aprendiendo HQL, pero en SQL regular esto no funcionaría: la combinación de la izquierda significa que obtendrás resultados de jugador incluso si no hay registros coincidentes en Inventario y Encantamientos. (Seguiré buscando explicaciones sobre esto ... Sospecho que "left join" significa algo diferente en HQL, o esta consulta no sería de mucha utilidad). –
@RobWhelan La consulta anterior funcionaría (con los ajustes adecuados a la sintaxis, por supuesto) muy bien en SQL regular debido a la condición 'e.isSuperiorEnchantment = 1' que no se cumpliría para los Jugadores sin Encantamiento ya que' isSuperiorEnchantment' sería devuelto como nulo. – ChssPly76