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

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 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信