我尝试在数组中查找数组元素,但遇到错误
第一个
我发现错误是由于查询中的此行
"(COALESCE(:motherLanguage, NULL) is null or i.personalDetail.motherLanguage IN (:motherLanguage))"
我的查询对state
参数正确工作,因为state只是一个字符串,而motherLanguage
是一个数组。
基本上,我想知道如何使用数组在数组中进行查询。如果在Internet上找到了SELECT ARRAY[1,2] && ARRAY[1,3,4,7];
,但当我尝试将&&
放入JPA查询时,它会出现错误
"(COALESCE(:motherLanguage, NULL) is null or i.personalDetail.motherLanguage && (:motherLanguage))"
这是波纹管查询的错误
一个
2条答案
按热度按时间oyxsuwqo1#
您应该将JPQL查询重写为:
JPA应该足够智能,可以直接将绑定集合与空值进行比较,不需要像使用
COALESCE()
那样使用它。nbysray52#
请尝试使用两个参数:
如果列表为空,则强制为空:
并设置参数(不知道如何用Spring Data进行此操作):