我正在使用JpaRepository,并尝试使用List<String>
查询数据库,因此我使用了类似的查询,但没有得到任何结果。
下面是我的疑问:
@Query("SELECT a FROM MappingEntity a WHERE UPPER(a.cuisines) LIKE (% :cuisine_type %) AND ST_distance(ST_POINT(:lng , :lat), a.geoLocation) < :radius")
List<OpentableMappingEntity> getRestaurantsListCuisines1(@Param("cuisine_type") List<String> cuisines, @Param("lat") double latitude, @Param("lng") double longitude, @Param("radius") Integer radius);
@Query("SELECT a FROM MappingEntity a WHERE UPPER(a.cuisines) LIKE CONCAT('%', CONCAT(:cuisine_type, '%')) AND ST_distance(ST_POINT(:lng , :lat), a.geoLocation) < :radius")
List<OpentableMappingEntity> getRestaurantsListCuisines2(@Param("cuisine_type") List<String> cuisines, @Param("lat") double latitude, @Param("lng") double longitude, @Param("radius") Integer radius);
我尝试了两个查询,我得到了一个空的响应,如果我删除类似的部分,它会给予我的结果。
如何对列表进行类似查询?
1条答案
按热度按时间sd2nnvve1#
不能对列表使用LIKE,而应使用IN
示例:带有列表的本机查询:
并在存储库中查询:
两个查询显示相同的结果