gpt4 book ai didi

java - Spring Data JPA findAll 与不同的EntityGraph

转载 作者:行者123 更新时间:2023-12-01 16:56:24 24 4
gpt4 key购买 nike

在 Spring Data JPA 存储库中,我需要指定多个方法来执行相同的操作(例如 findAll),但指定不同的 @EntityGraph 注释(目标是在不同的服务中使用优化的方法)。

Es。

@Repository
public interface UserRepository extends JpaSpecificationExecutor<User>, JpaRepository<User, Long> {

@EntityGraph(attributePaths = { "roles" })
findAll[withRoles](Specification sp);

@EntityGraph(attributePaths = { "groups" })
findAll[withGroups](Specification sp);

etc...
}

在Java中我们不能多次使用同一个方法,那么如何管理它呢?

不使用JPQL是否可以?

谢谢

加布里埃尔

最佳答案

您可以使用EntityGraphJpaSpecificationExecutor根据您的方法传递不同的entitygraph

@Repository
public interface UserRepository extends JpaSpecificationExecutor<User>, JpaRepository<User, Long>, EntityGraphJpaSpecificationExecutor<User> {

}

在您的服务类中,您可以使用实体图调用 find all。

List<User> users = userRepository.findAll(specification, new NamedEntityGraph(EntityGraphType.FETCH, "graphName"))

像上面一样,您可以根据您的要求使用不同的实体图。

关于java - Spring Data JPA findAll 与不同的EntityGraph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61582986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com