gpt4 book ai didi

java - Spring Data 中的查询创建 - 动态 where 子句

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:26 25 4
gpt4 key购买 nike

Spring数据中有没有办法动态形成where子句?

我想要做的是有一个方法(类似于 findBy/get 方法)运行 WHERE 和 AND 使用提到的非 NULL 的属性。

例如,

Consider the object Person [firstName, lastName, age, gender]

我们的方法看起来像这样

findBy_IfNotNullFirstName_AndIfNotNullLastName_AndIfNotNullAge_AndIfNotNullGender(String firstName, String lastName, Integer age, String gender)

谢谢。

最佳答案

一个更简单的选项是在 JPQL 查询中测试参数是否为空:

我项目中的例子:

@Query("select m from MessageEntity m " +
"join fetch m.demandeAnalyseEntities d " +
"where (:patientId is null or d.noPtn= :patientId) " +
" and " +
" ( :labNbr is null or d.noLab= :labNbr) " +
" and " +
" ( :reqDate is null or d.dteReq= :reqDate) " +
" and " +
" ( :reqNum is null or d.noReq= :reqNum) "
)
List<MessageEntity> findMessagesWithDemandesOnly(@Param("patientId") Long pid,
@Param("labNbr") Integer labNo,
@Param("reqDate") String reqDate,
@Param("reqNum") Integer reqNum,
Pageable pageable);

关于java - Spring Data 中的查询创建 - 动态 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21482339/

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