Java 元素集合不是延迟加载数据

Java 元素集合不是延迟加载数据,java,spring-boot,jpa,spring-data-jpa,Java,Spring Boot,Jpa,Spring Data Jpa,我的对象具有元素集合列表: public class AppUser { @ElementCollection(fetch = FetchType.LAZY) private Set<Long> appsAndGamesWishList = new HashSet<>(); @ElementCollection(fetch = FetchType.LAZY) private Set<Long> ebookWishLis

我的对象具有元素集合列表:

public class AppUser {
   
    @ElementCollection(fetch = FetchType.LAZY)
    private Set<Long> appsAndGamesWishList = new HashSet<>();

    @ElementCollection(fetch = FetchType.LAZY)
    private Set<Long> ebookWishList = new HashSet<>();
    
    @ElementCollection(fetch = FetchType.LAZY)
    private Set<Long> appsAndGamesInstalled = new HashSet<>();

    @ElementCollection(fetch = FetchType.LAZY)
    private Set<Long> ebooksInstalled = new HashSet<>();
 
}
但是,当我想使用findById存储库获取数据时,我在响应中有四个列表。 只有这两张单子我怎么办


提前谢谢。

您返回的是
可选的
但要求的是
列表
,请为您的问题提供一些上下文。@code\u可选对象包含我想要的列表
我在回复中有四个列表
您如何检查?当您检查实体是否有列表时,Hibernate可能会加载它们。在调用
findById
@Raj后,您可以添加一个调试检查点并检查它是否具有所有列表吗?我使用调试器检查它。您返回
可选的
,但要求
列表
,请为您的问题提供一些上下文。@code\u可选对象包含我想要的列表
我在回复中有四个列表
您如何检查?当您检查实体是否有列表时,Hibernate可能会加载它们。在调用
findById
@Raj之后,您可以添加一个调试检查点并检查它是否具有所有列表吗?我使用调试器来检查它。
@Query(value = "SELECT a FROM AppUser a "
        + "LEFT JOIN FETCH a.appsAndGamesWishList "
        + "LEFT JOIN FETCH a.ebookWishList "
        + "where a.id = (:appUser)")
Optional<AppUser> findById(@Param("appUser") String appUser);