Ich habe eine Klasse, dieRuhe HQL eifrig Last Sammlung in eingebettetes Objekt
public class A {
@Embedded
private B b;
// getter setter
}
Innen B Klassenobjekt eingebettet ist, habe ich eine Sammlung z.B.
@Embeddable
public class B {
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="A_ID")
List<C> cList;
}
und Klasse C
@Entity
public class C {
// not important
}
Jetzt möchten ich ein Objekt mit HQL abzufragen und auch die C-Liste mit Spannung abrufen. Ich habe versucht,
select a from A a join fetch a.b.c c
aber ich bekomme diese Fehlermeldung Join fetch: “query specified join fetching, but the owner of the fetched association was not present in the select list”
Ich lese diese Join fetch: "query specified join fetching, but the owner of the fetched association was not present in the select list" und es scheint, dass es ist, weil meine Sammlung im Inneren ein eingebettetes Objekt gespeichert wird.
Natürlich kann ich for Schleife tun und Hibernate.initialize
verwenden, aber die Leistung wird fallen, wenn mehr Daten abgerufen werden.
Ist es möglich, dies in HQL auf einen Schlag zu tun?
Dies ist genau das, was ich suche! Zusammenfassend muss ich den Alias für den Join-Abruf nicht angeben. –
Darüber hinaus denke ich, dass "linker äußerer Join" hier nützlich ist, da die Verwendung von "äußerer Join" nur MultiA-Objekte mit MultiC-Sammlung abruft –