条件加载@ManyToMany JPA

问题描述 投票:0回答:1

我有一个用户实体和文章实体。文章的获取类型是LAZY。我不需要一直加载文章,但我有一个情况需要加载用户收藏夹的文章。我怎样才能有条件地做到这一点?

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
        name = "user_favorite_articles",
        joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "userId", nullable = false),
        inverseJoinColumns = @JoinColumn(name = "article_id", referencedColumnName = "articleId")
)
private List<Article> favoriteArticles;
java spring-boot hibernate jpa
1个回答
0
投票

1.实体图

Optional<User> findById(Long id);

2. JPQL 或 HQL

@Query("SELECT u FROM User u JOIN FETCH u.favoriteArticles WHERE u.id = :id")
Optional<User> findUserWithFavoriteArticles(@Param("id") Long id);
© www.soinside.com 2019 - 2024. All rights reserved.