我正在尝试使用Collection参数编写查询。假设查询会将此集合转换为其值的列以用于进一步的操作。我正在使用Spring,所以现在查询如下:
@Query(value = "SELECT id FROM unnest(array[?1]) id", nativeQuery = true)
List<Object> getIds(Collection<String> ids);
这不起作用,因为Hibernate将集合设置为大括号中的参数,因此实际查询将发送到DB:
SELECT id FROM unnest(array[('1', '2')]) id
这不是有效的查询,错误正在出现:
错误:函数返回需要列定义列表 “记录” SQL状态:42601
它的正确版本必须是:
SELECT id FROM unnest(array['1', '2']) id
因此,请问有人可以告诉我,有没有一种方法可以将集合设置为查询参数而不使用花括号吗?也许还有另一种方法可以将集合转换为列?