Tengo un objeto con varias relaciones @onetomany, y necesito consultar las propiedades en el padre, así como las propiedades de los hijos. Parece que no puedo hacerlo.Hibernate HQL Consulta para obtener parent + children basado en childID
Por ejemplo, necesito una consulta que me permita ver los objetos principales donde el nombre del padre es "Juan" y el color favorito del niño es azul. Espero que tenga sentido. El motivo de la complicación parece ser que los niños están en una lista, no en una relación @onetoone.
PARENT:
@Entity
@Table(name="Parent")
public class Parent {
@Id
@Column(name="ID")
@GeneratedValue(strategy=GenerationType.AUTO, generator="parent_gen")
@SequenceGenerator(name="parent_gen", sequenceName="PARENT_SEQUENCE")
private int parentID;
@Column(name="name")
private String name;
@OneToMany(cascade=CascadeType.ALL)
@OrderBy("name ASC")
@JoinTable(name = "parent_to_child")
private List<Child> childList;
// and so forth
Child
@Entity
@Table(name="Child")
public class Child{
@Id
@Column(name="ID")
@GeneratedValue(strategy=GenerationType.AUTO, generator="child_gen")
@SequenceGenerator(name="child_gen", sequenceName="CHILD_SEQUENCE")
private int childID;
@Column(name="favoriteColor")
private String favoriteColor;
// and so forth
Esto parece a buscar los resultados como 2 objetos distintos, de los padres en [0] y el niño en [1] Esto podría funcionar, pero pensé que solo devolvería los objetos "reales". Necesito averiguar cómo sacar al padre y al hijo del objeto genérico que se devuelven, ya que ... ¡ya llegué! – Jorge
@ user1454878 Se necesita una cláusula de selección para eso. Editaré la respuesta. – Pablo
Esto todavía muestra todos los objetos secundarios en la lista sin importar si favoriteColor es azul, rojo o blanco. ¿Es normal? ¿No se suponía que solo mostraba objetos secundarios cuyo favoritoColor es azul? – Eniss