@tequilacat отчетливый специально для таких случаев

я есть отношения один-ко-многим между пользователем и GameMap. У одного пользователя может быть много карт.

Класс пользователя:

// LAZY LOADED
@OneToMany(cascade = CascadeType.ALL, mappedBy = "creater")
private final List<GameMap> maps = new ArrayList<>();

Однако иногда мне нужно загружать карты. Чтобы избежатьLazyInitializationException&nbsp;после закрытия сессии у меня есть два варианта получения пользователей.

Репозиторий пользователей:

public interface UserRepository extends JpaRepository<User, Long> {

    Optional<User> findById( Long id );

    @Query("SELECT u FROM User u JOIN FETCH u.maps WHERE u.id = (:id)")
    public User findByIdEagerFetch( @Param("id") Long id );
}

Проблема:
Однако вариант JPQL JOIN FETCH для быстрой загрузки пользователя за один раз, и его карты возвращают пользователя NULL.если в таблице нет карт этого пользователя.

Вопрос:
Как я могу переписать оператор JPQL для того, чтобы получить пользователя и, при желании (!), Все его карты, но если карт нет, то это нормально, но не возвращать NULL пользователя.