data-jpa在postgresql中使用多个带like的关键字

r8xiu3jd  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(414)

我需要定义一个jpa查询,其翻译为:

SELECT
  *
from 
  items_table
where
  lower(CONCAT(item_id,' ', color,' ',details,' ')) like all ('{"%blue%", "%plastic%"}') and 
  store='Main' and 
  status='In Stock' and 
  item_type='Container';

参数列表中的所有将是一个输入连同商店,状态和项目类型从前端。

dxpyg8gm

dxpyg8gm1#

我知道这是第一次 WHERE 你有问题的情况。如果 String[] -类型化参数不能削减它,尝试使用这种方法,希望 LIKE ALL 将传递到生成的查询-类似于:

@Query("SELECT i FROM Item i WHERE LOWER(CONCAT(...)) LIKE ALL :terms AND ...")
List<Item> findByTerms(TypedParameterValue terms, ...)

itemRepository.findByTerms(new TypedParameterValue(StringArrayType.INSTANCE, terms), ...)

如果jpa不喜欢 LIKE ALL ,则必须继续使用本机查询。

相关问题