у меня есть 2 таблицы: родитель и ребенок и oneToMany отношения между родителем и ребенкомHibernate выборки родителей и всех детей, если дети отвечают критериям
@Entity
@Table(name="PARENT")
public class Parent {
int parentID;
String marritalStatus;
List<Child> children;
//getters and setters
@OneToMany(mappedBy = "parent", cascade=CascadeType.ALL, orphanRemoval=true, fetch = FetchType.EAGER)
public List<Child> getChildren() {
return children;
}
}
@Entity
@Table(name="CHILD")
public class Child{
private Parent parent; //FK
private int age;
private int childID;
@ManyToOne
@JoinColumn(name = "PARENT_ID", referencedColumnName = "PARENT_ID", nullable=false)
public Parent getParent() {
return parent;
}
public void setParent(Parent parent) {
this.parent = parent;
}
}
Теперь я хочу принести родителю всех детей, у которых один из детям 10 или более лет, а родитель женат. Другими словами, Предположим, что P1 имеет 2 детей, c1 возраст = 11 и c2 = 8, а p1.marritalStatus женат.
Так что мой запрос должен получить P1 с c1 и c2.
Прямо сейчас это только выборка P1 с c1. Нет c2. И p1.getChildren() дает только c1.
Мои HQL выглядит следующим образом:
первый запрос, который я выполняю: получить родительский список идентификаторов
parentIDList = выбрать p.parentID от Родителя как п LEFT JOIN принести p.children, как с, где c.age> 10 и p.marritalStatus = «женился»»
Я получаю правильный родительский список ID Pass, что родительский ID (P1 в данном случае) список в 2-ом запросе
второго запроса на головной таблице (не присоединяется к детскому столу) "from Parent as p, где p.parentID IN (parentIDList)"
Поскольку FetchType - EAGER, я думал, что спящий режим будет выбирать всех детей, когда я получаю родительский элемент, но не выглядит так.
Я попытался - присоединился к таблице Child для второго запроса, но это не дает желаемого результата.
Мой 1-й запрос работает нормально, и я получаю правильный родительский список, моя проблема не получает все дочерние при выполнении второго запроса. как это решить?
Не могу сделать - получить от детей. Я могу получить только родителя, и это дети только от родителей. – DaenKhaleesi
Почему? У вас это определено для детей как поля/отношения. – javydreamercsw