【问题标题】:How to use Specification in custom methods in JPA Repository如何在 JPA 存储库的自定义方法中使用规范
【发布时间】:2019-10-04 07:27:27
【问题描述】:

假设我有这个搜索存储库方法:

@Query(value = "SELECT t.a, t.b, t.c, t.d, t.e from Table t where t.a= :param1 and t.e= :param2")
Page<MyObject> search(Long param1, Long param2, Pageable pageable);

我想将规范应用到此方法中,如下所示:

@Query(value = "SELECT t.a, t.b, t.c, t.d, t.e from Table t where t.a= :param1 and t.e= :param2")
Page<MyObject> search(Long param1, Long param2, Specification specification, Pageable pageable);

有可能实现吗?因为我很确定规范只能应用于默认的 Spring 方法 (findAll)。

【问题讨论】:

    标签: spring postgresql spring-boot


    【解决方案1】:

    正确答案是否定的。根据 JpaSpecificationExecutor,您可以通过以下方法使用 Specification 对象:

    findOne(@Nullable Specification<T> spec);
    findAll(@Nullable Specification<T> spec);
    findAll(@Nullable Specification<T> spec, Pageable pageable);
    findAll(@Nullable Specification<T> spec, Sort sort);
    count(@Nullable Specification<T> spec);
    

    【讨论】:

    • 谁能解释一下如何在 jpa 的自定义方法中使用规范,如果有人能回答这个我非常需要它
    猜你喜欢
    • 2020-08-10
    • 2015-03-15
    • 1970-01-01
    • 2018-02-09
    • 2012-07-15
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多