【发布时间】:2019-01-06 11:22:44
【问题描述】:
我正在 JPQL 中实现搜索方法,该方法从类的两个字段中的给定参数搜索机构类的所有对象。如果没有对象,它应该返回 null。此代码有效,但返回空集合而不是 null。
@Query("select i from Institution i where i.city like concat('%', :pattern, '%') or " +
"i.name like concat('%', :pattern, '%') ")
List<Institution> findAll(@Param("pattern") String criteria);
因此尝试了这种似乎有效的方法,但事实并非如此。
@Query("select case when((i.city like concat('%', :pattern, '%')) or (i.name like concat('%', :pattern, '%' )) ) " +
"then i else null END " +
"from Institution i")
List<Institution> findAll(@Param("pattern") String criteria);
【问题讨论】:
-
为什么要在select子句中做条件,而不是在where子句中?
-
对不起,我忘了第一种方法