【问题标题】:Not Equals Query on Spring Boot REST/JPA ServiceSpring Boot REST/JPA 服务中的不相等查询
【发布时间】:2020-05-08 21:33:44
【问题描述】:

我是 Spring Boot 的新手,我创建了一个使用 JPA 的非常基本的 REST 服务,并为我的模型上的 CRUD 和查询操作公开了 RepositoryRestResource:

@RepositoryRestResource
public interface CatalogueOrderRepository extends JpaRepository<CatalogueOrder, Long>,
    QuerydslPredicateExecutor<CatalogueOrder> {

}

使用它,我可以执行涉及搜索值、分页和排序的查询,例如:

?page=0&amp;size=5&amp;sort=priority,desc&amp;orderStatus=submitted

是否可以在不进行任何额外工作的情况下搜索不相等的值?例如,所有 orderStatus 不等于“已提交”的订单。

我注意到Predicate 接口有一个not() 方法,但我不确定它是否相关。

【问题讨论】:

    标签: java spring-boot jpa spring-data-jpa named-query


    【解决方案1】:

    对于这种情况,您应该做一些工作。有不同的方法可以做到这一点。请参阅有关 JPA 的 Spring 文档和示例。

    例如您可以使用@Queryspecifications

    【讨论】:

      【解决方案2】:

      您可以尝试“从方法名称创建查询”。

      假设您要按订单状态搜索订单已提交,

      List&lt;Order&gt; findByOrderstatusNot(String orderstatus);

      【讨论】:

      • 这也适用于分页/排序吗?我还需要提供 Sort 和 Pageable 作为参数吗?
      • 如果您的意思是按顺序排序,则可以使用它,例如 findByOrderstatusOrderByOrderId,但分页并不简单,因为这涉及 limit偏移
      猜你喜欢
      • 2017-12-15
      • 2017-04-01
      • 2017-04-30
      • 2021-10-13
      • 2017-09-26
      • 1970-01-01
      • 2021-08-28
      • 2021-09-15
      • 2022-01-24
      相关资源
      最近更新 更多