ich Spring Data
verwende und definieren folgende Abfrage:FetchTypes in Spring Data JPQL Query (MultipleBagFetchException)
@Query("SELECT u FROM AppUser u LEFT OUTER JOIN fetch u.userRights a LEFT OUTER JOIN fetch u.userGroups g LEFT OUTER JOIN fetch u.userGroups ug LEFT OUTER JOIN FETCH ug.groupRights where u.login = :login")
public Optional<AppUser> findOneWithCompleteRights(@Param("login") String login);
Wie Sie vielleicht sehen, möchte ich mit all seinen Zugriffsrechte Benutzer die angemeldet zurück. Während die Feder Anwendung starten, läuft es in:
Caused by: javax.persistence.PersistenceException: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
ich folgendes überprüft haben: Multiple fetches with EAGER type in Hibernate with JPA
Wenn ich alle @XXXToMany
Typen zu java.util.Set
ändern, es funktioniert, aber ich möchte die Art entscheiden, auf meinem eigene ...
Die anderen Annotationen der verknüpften Lösung (siehe unten) scheinen ignoriert zu werden, wenn sie an die @Query
Methode angehängt werden. Zweitens würde sowieso keinen Sinn ergeben. statt Tasche
- laden jeweils separat Sammlung subselect
@Fetch(FetchMode.SELECT)
- Kraftnutzung Liste durch Hinzufügen von Indexspalte
@IndexColumn(name="LIST_INDEX")
Hat jemand eine andere Lösung, anstatt die Einstellung der Typ Set
mit?
Ok, ich habe diese Lösung bereits in meiner Frage beschrieben und gefragt, ob es eine andere Lösung gibt :) –