首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Data (Hibernate)动态WHERE子句

问Spring Data (Hibernate)动态WHERE子句
EN

Stack Overflow用户
提问于 2020-03-06 19:02:33
回答 1查看 125关注 0票数 1

我有一个这样的存储库

代码语言:javascript
复制
@Repository
public interface LeadRequestRepository extends PagingAndSortingRepository<LeadRequest, UUID> {

    @Query(value = "SELECT * FROM lead_request WHERE product IN :products AND current_status in :status", nativeQuery = true)
    List<LeadRequest> findLeadRequests(@Param("products") List<String> products, @Param("status") List<String> status);

}

在此查询中,状态可以为null或空列表。

在这种情况下,查询必须返回所有状态(新建、已批准、已拒绝等)。换句话说,查询必须变成SELECT * FROM lead_request WHERE product IN :products,而不是status子句。

我也很困惑,因为我使用了IN子句,所以我不能使用JPA示例API

我如何使用hibernate和jpa来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-03-06 19:57:10

有两个选项:

  1. 你会有两个JPQL/原生查询,基于null条件,你可以调用其中一个查询。
  2. 更好的选择是使用JPA标准查询。Spring Data JPA为名为Specifications的JPA标准查询提供了抽象。看一看Spring Data JPA docs here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60562756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档