Mam obiekt z kilku relacji @onetomany, i muszę zapytać o właściwości w rodzica, a także właściwości dzieci. Nie mogę tego zrobić.Hibernate HQL Query, aby uzyskać rodzic + dzieci w oparciu o childID
Na przykład potrzebuję zapytania, które pozwoli mi zobaczyć obiekty nadrzędne, w których rodzic ma na imię "John" i ulubiony kolor dziecka jest niebieski. Mam nadzieję, że ma to sens. Powodem komplikacji wydaje się być to, że dzieci są na liście, a nie w związku @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
Wydaje się pobrać wyniki w 2 dwóch odległych obiektów rodzica w [0] i dziecku w [1]. To może zadziałać, ale pomyślałem, że po prostu zwróci "prawdziwe" obiekty? Muszę wymyślić, jak pobrać rodzica i dziecko z ogólnego obiektu, który są zwracane jako ... Idę tam! – Jorge
@ user1454878 Do tego potrzebna jest klauzula select. Będę edytować odpowiedź. – Pablo
To nadal pokazuje każdy obiekt podrzędny na liście, niezależnie od tego, czy ulubiony kolor to niebieski, czerwony czy biały. Jest to normalne? Czy nie powinno się pokazywać tylko obiektów podrzędnych, których favoriceColor jest niebieskie? – Eniss