Chi*_*may 5 java sql jpa spring-data-jpa
Spring数据中有没有办法动态形成where子句?
我想要做的是有一个方法(类似于findBy/get方法)运行WHERE和AND使用提到的NOT NULL属性.
例如,
Consider the object Person [firstName, lastName, age, gender]
Run Code Online (Sandbox Code Playgroud)
我们的方法看起来像这样
findBy_IfNotNullFirstName_AndIfNotNullLastName_AndIfNotNullAge_AndIfNotNullGender(String firstName, String lastName, Integer age, String gender)
Run Code Online (Sandbox Code Playgroud)
谢谢.
小智 6
看一下JPA规范和谓词,甚至更好的QueryDSL,这两个都得到了Spring数据库的支持.本文提供了一个示例:http: //spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/
小智 5
一个更简单的选择是在 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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20269 次 |
| 最近记录: |