Ich habe mehrere Entitäten konfiguriert und zugeordnet und alles funktioniert wie erwartet.Verknüpfen Sie mehrere Entitäten mit where-Klausel und erhalten Ergebnis von diesem
Jetzt möchte ich eine benutzerdefinierte Abfrage verwenden, wo ich mehrere Entitäten verbinden und einige Where-Klauseln für diese definieren.
public interface GiataItemRepository extends JpaRepository<GiataItem, String>{
@Query(value="select g from GiataItem g "
+ "join g.service s "
+ "join s.section se "
+ "join se.secPic sp "
+ "where g.giataId = :giataId "
+ "and se.secScope = 'MAINGALLERY' "
+ "and sp.category = 'MAINGALLERY' "
+ "and sp.seqOrder = 0")
GiataItem findPicture(@Param("giataId") String giataId);
}
Die SQL gibt mir das korrekte Ergebnis für meine GiataItem
. Aber ich habe nicht die Beschränkungen von meinen where-Klauseln für alle anderen abgebildeten Entitäten wie service
, section
und so weiter.
Ich verwende Lazy Loading und es ist klar, wenn ich giataIetem.getService
, JPA verwendet eine neue Auswahl und meine Where-Klauseln sind weg.
Also wie kann ich erreichen, dass ich alle meine verbundenen Entitäten auf die Where-Klauseln und seine Einschränkungen bauen.