我的类型是:
CREATE TYPE status_record AS
(
id bigint,
status boolean
);
以类型数组作为输入参数进行某些处理的过程,如下所示:
CREATE OR REPLACE FUNCTION update_status(status_list status_record[])
RETURNS text AS
$BODY$
DECLARE
BEGIN
--does some processing
return 'SUCCESS';
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
最后,我对程序进行了查询:
select *
from update_status(cast(ARRAY[(385,false),(387,false)] as status_record[]));
在pgadmin中一切正常。后来当我尝试使用hibernate原生sql查询调用相同的函数时!!!将显示以下内容:
org.postgresql.util.PSQLException:
ERROR: array value must start with "{" or dimension information
最后一个问题:两者都有 ARRAY[--something]
以及 {--something}
做同样的工作?
2条答案
按热度按时间zbq4xfa01#
尝试将数组和类型初始化放在一个字符串中,也许您可以绕过混淆层(也称为orm)的问题:
我不知道冬眠,所以我不知道这是否有效。
zazmityj2#
使用数组文字(数组的文本表示),因为数组构造函数
ARRAY[...]
必须由博士后评估:即使没有明确的演员阵容:
以前也有类似的案例:
将数组从节点postgres传递到plpgsql函数
如何将自定义类型数组传递给postgres函数