我们可以使 Spring JPA 规范与 EntityGraph 一起使用吗?

Can we make Spring JPA Specifications work with EntityGraph?

我在实体上使用 JPA 规范实现动态查询逻辑。该实体与其他实体有多重关系。我 运行 遇到在执行 JPA 规范时生成过多查询的问题。

有没有一种方法可以将 JPA 规范 findAll(specification, page) 与 EntityGraph 结合起来,以便我们可以在执行相同查询的同时生成一个查询?

是的,绝对可以通过 EntityGraph 使用 EntityGraphJpaSpecificationExecutor

@Repository
public interface UserRepository
        extends JpaRepository<EntityClassName, DatatypeOfPrimaryKey>, EntityGraphJpaSpecificationExecutor<EntityClassName> {
}

userRepository.findAll(specification, pageable, new NamedEntityGraph(EntityGraphType.FETCH, "graphName"))