为了账号安全,请及时绑定邮箱和手机立即绑定

JPQL - 如果参数为空,则所有

JPQL - 如果参数为空,则所有

撒科打诨 2023-06-14 14:20:40
JPQL 是否有可能返回所有结果并忽略参数中的空值而不是寻找空值?例如:@Query("SELECT p FROM PromoCode p " +             "WHERE (LOWER(p.name) LIKE LOWER(concat('%', concat(:query, '%'))) OR " +             "LOWER(p.promoCode) LIKE LOWER(concat('%', concat(:query, '%')))) AND p.type = :type")             Page<PromoCode> search(@Param("query") String query, @Param("type") PromoCode.Type type, Pageable pageable):type如果它为空,我该如何忽略它?
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

您最可能需要的是一个CriteriaQuery内置的自定义存储库。它专为您的需要而设计,构建依赖于各种因素的查询。

如果你真的想坚持下去,@Query你总是可以通过这种方式使该部分成为可选的:

AND (p.type = :type OR :type is null)

当有更多这样的参数时,问题就开始浮出水面。您的查询将难以维护和理解。



查看完整回答
反对 回复 2023-06-14
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号