【发布时间】:2021-03-02 10:47:16
【问题描述】:
我使用的是 Spring Boot 2.4.0 版。
我需要从 name 不为 null 的表中获取数据,但它应该基于 mandflag 有条件,如果 mandflag=true 那么只有 name 不为 null 应该被执行。 请建议如何在下面的查询中添加这个基于标志的条件。
@Query("SELECT p FROM testtable p WHERE name is not null ")
public List<PatientEntity> findRecords(@Param("mandflag") boolean mandflag);
编辑 要求 - 如果输入标志为真,则从名称不为空的表中获取数据
我需要根据布尔标志执行条件的表中的数据
【问题讨论】:
-
我很难理解你在问什么。能不能说的更清楚一点?
-
我想根据参数执行条件查询。在这里,如果输入 mandflag 参数为真,那么我需要名称不为空或 null 的记录,如果输入 mandflag 参数为假,则应返回所有记录
-
只需编写 2 个方法来执行此操作并根据布尔值执行所需的一个。
-
你可以简单地使用
select p from testtable p where ?1=false OR (?1=true and name is not null)
标签: mysql spring-boot spring-data-jpa