Ho un oggetto con diverse relazioni @onetomany e ho bisogno di eseguire una query per le proprietà nel padre e anche le proprietà dei figli. Non riesco a farlo.Hibernate HQL Query per ottenere genitore + figli in base all'ID figlio
Per esempio, ho bisogno di una query che mi permette di vedere gli oggetti padre dove dove il nome del genitore è "John" e colore preferito del bambino è blu. Spero che abbia un senso. La ragione della complicazione sembra essere che i bambini sono in una lista, non in una relazione @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
Questo sembra recuperare i risultati come 2 oggetti distinti, genitore [0] e bambino [1]. Questo potrebbe funzionare, ma ho pensato che avrebbe restituito solo gli oggetti "reali"? Ho bisogno di capire come recuperare il genitore e il figlio dall'oggetto generico che vengono restituiti come ... ci sto arrivando! – Jorge
@ user1454878 Per questo è necessaria una clausola select. Modificherò la risposta. – Pablo
Questo mostra ancora ogni oggetto figlio nell'elenco, indipendentemente dal fatto che favoriteColor sia blu, rosso o bianco. È normale? Non si supponeva che mostrasse solo oggetti figlio il cui colore preferito è blu? – Eniss