Ich versuche, die folgende HQL-Anweisung auszuführen:Hibernate HQL verbinden mit Konstruktor holen
queryString = "select new DossierAccount(dossier,dossierAccount.accountNumber) from DossierAccount as dossierAccount join fetch dossierAccount.dossier as dossier" +
" where dossier.kycId.id != :kycId and dossierAccount.accountNumber in :accountNumbers";
Dies führt zu einer org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list
Ausnahme. Wenn ich das "fetch" entferne, funktioniert es. Die Verknüpfung zwischen DossierAccount und Dossier wird jedoch als "faul" angegeben und ich möchte sie nicht ändern. Aber in diesem speziellen Fall brauche ich, dass das Dossier eifrig geladen wird.
Es funktioniert auch, wenn ich den Aufruf des Konstruktors durch die Variable "accountNumber" ersetzen. Aber ich muss die Anzahl der ausgewählten Eigenschaften hier reduzieren.
Gibt es eine Möglichkeit, dies mit einem eingebetteten Konstruktoraufruf in der Select-Anweisung zu tun?
Eine weitere Frage: Ich muss auch die Anzahl ausgewählter Eigenschaften des verbundenen Dossiers einschränken. Gibt es auch einen Weg, dies zu erreichen?
Was passiert, wenn Sie 'fetch' entfernen und die Zuordnung' LAZY' beibehalten? – Tobb
Das zugehörige Dossier ist nicht geladen, aber ich brauche es in diesem Fall – thmayr
Was meinst du mit nicht geladen, gibt es keine Werte zu DossierAccount? – Tobb