首页 > 解决方案 > Spring结合派生查询方法和criteriabuilder

问题描述

假设我有以下存储库,我在其中使用派生查询方法

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
    List<User> findByX(String x)
    List<User> findByX(String y)

    ...
}

现在,我需要通过一些无法使用派生查询方法实现的复杂查询来查找用户。我可以使用@Query注释,但我不想编写一堆类似 SQL 的查询。我宁愿使用CriteriaBuilder.

我可以在一个类中实现接口并访问实体管理器,但这显然需要我实现定义的方法,以及定义的所有 spring 存储库方法。实施这些方法需要额外的努力。

public class UserRepositoryImpl implements UserRepository {
    @PersistenceContext
    private EntityManager em;
}

我可以创建一个独立的UserRepositoryImpl,但随后我必须考虑我需要注入哪个。

public class UserRepositoryImpl {
    @PersistenceContext
    private EntityManager em;
}

是否可以在单个实例中使用派生查询方法和标准构建器?

标签: spring-data-jpaspring-dataspring-repositories

解决方案


推荐阅读