mysql - spring boot jpa @query where 子句基于布尔标志参数
问题描述
我正在使用 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);
编辑 要求 - 如果输入标志为真,则从名称不为空的表中获取数据
我需要根据布尔标志执行条件的表中的数据
解决方案
@Query("SELECT p FROM testtable p WHERE CASE WHEN :mandflag= TRUE THEN name is not null ELSE 1=1 END", nativeQuery = true)
public List<PatientEntity> findRecords(@Param("mandflag") boolean mandflag);
推荐阅读
- c# - 在 C#/Blazor 中的 html 元素内为 ONMOUSEOVER 赋予功能
- angular - 如何在 Angular 中从 NestJS+Redis 完成作业?
- c++ - 这是真正具有最小阻塞的线程安全 LRU 缓存设计吗?
- php - PHP - 寻找在嵌套数组项之前添加特定键的更好方法
- javascript - Discord.js:如何检查特定用户是否具有角色?
- python - 在索引日期列(lte)上过滤数据框
- java - 等待 JavaFX 运行时准备好
- amazon-web-services - 如果令牌来自 Cognito,HttpActionContext 如何从 Jwt 令牌获取 ClaimsPrincipal
- telegram - Telegram Bot 适用于其他帐户,但不适用于我的帐户
- encryption - 如何在lua中加密RSA?