将收集参数设置为列值的列表

时间:2018-10-25 17:10:05

标签: java postgresql hibernate

我正在尝试使用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

因此,请问有人可以告诉我,有没有一种方法可以将集合设置为查询参数而不使用花括号吗?也许还有另一种方法可以将集合转换为列?

0 个答案:

没有答案