在Spring Data JPA Repository中,我需要指定多个方法来做同样的事情(例如,findAll),但指定不同的@ bottyGraph注解(目标是在不同的服务中使用优化的方法)。
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吗?
谢谢你,
Gabriele
2条答案
按热度按时间uqzxnwby1#
您可以使用
EntityGraphJpaSpecificationExecutor
根据您的方法传递不同的entitygraph
。在你的服务类中,你可以用实体图调用find all。
像上面一样,你可以根据你的需求使用不同的实体图。
qxgroojn2#
你可以在你的仓库中创建两个默认方法,使用相同的签名,像这样: