有一个非常简单的技巧可以执行您需要的;)
@Query("select e from Entity e where "
+"(:country = '' or e.country like '%:country%') and "
+"(:state = '' or e.state like '%:state%') and "
+"(:district = '' or e.district like '%:district%') and "
+"(:zipCode = '' or e.zipCode like '%:zipCode%')"
Page<Entity> advancedSearch(@Param("country") String country,
@Param("state") String state,
@Param("district") String district,
@Param("zipCode") String zipCode,
Pageable page);
因此,当您需要调用时advancedSearch
,可以仅设置需要的参数,而其他设置为""
:
Page<Entity> enityPages = advancedSearch("", "California", "1st", "", new PageRequest(...));