gpt4 book ai didi

java - JPQL - 如果参数为空,则全部

转载 作者:行者123 更新时间:2023-11-30 05:30:59 25 4
gpt4 key购买 nike

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为空,我如何忽略它?

最佳答案

您最可能需要的是在自定义存储库中构建的 CriteriaQuery。它完全根据您的需要而设计,根据各种因素构建查询。

如果您确实想坚持使用@Query,您始终可以通过这种方式将该部分设为可选:

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

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

关于java - JPQL - 如果参数为空,则全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57560599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com