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)
当有更多这样的参数时,问题就开始浮出水面。您的查询将难以维护和理解。
添加回答
举报
0/150
提交
取消