有人能告诉我如何使用Eclipselink(JPA2.1)
将数组参数传递给postgresql函数吗?我尝试了下面的方法,但是得到了错误:
例外
psqlException:无法推断用于[ljava.lang.Integer;]实例的SQL类型。使用带有显式Types值的setObject()来指定要使用的类型。
Integer[] propertyRowIndexArr = new Integer[]{1005, 1006, 1007};
StoredProcedureQuery query1 = myEntityManager.createStoredProcedureQuery("func_testArr");
query1.registerStoredProcedureParameter("itemdetailid", Integer[].class, ParameterMode.IN);
query1.setParameter("itemdetailid", propertyRowIndexArr);
CREATE OR REPLACE FUNCTION func_testArr(categoryid integer[])
RETURNS setof category AS
$BODY$
DECLARE r category%rowtype;
BEGIN
FOR r IN select * from category c where c.categoryid = any($1)
LOOP
RETURN NEXT r;
END LOOP;
END;
谢谢
我对这个问题做了一个变通办法。
我需要将二维字符串数组(string[][])作为参数传递到PostgreSQL函数中。
我所做的是将完整的数组转换为字符串,然后在完整的字符串中用花括号替换方括号,如下所示:
query.setParameter(22, Arrays.deepToString(detalles_pedido).replace('[', '{').replace(']', '}'));
然后,在PostgreSQL函数中,我将接收到的参数类型更改为TEXT,并且可以在PostgreSQL函数中使用以下指令variableName::TEXT[][]将文本强制转换为数组。
validacion := 0;
FOREACH detalle SLICE 1 IN ARRAY set_detalles::text[][] LOOP
oidDetalle = uuid_generate_v4();
SELECT "Oid" INTO productoID FROM public.cat_producto WHERE descripcion = detalle[1];
SELECT precio_unitario INTO precioUnitario FROM public.cat_producto WHERE descripcion = detalle[1];
SELECT count(dblink) INTO validacion FROM (SELECT dblink('dblink_trans', 'INSERT INTO public.detalle_pedido ("Oid", pedido_id , producto_id, cantidad, surtido, precio, "OptimisticLockField", "GCRecord") VALUES (''' || oidDetalle || ''',''' || Oid || ''',''' || productoID || ''', '|| detalle[2] || ', false,'|| precioUnitario || ', 0, null);')::TEXT) AS insercion;
END LOOP;
这对我真的很有效。
我尝试从JPA/Hibernate环境向plpgsql存储过程传递整数数组值。但我总是得到一个执行:函数fn_test_array(bytea)不存在。 我编写了一个简短的演示应用程序,演示了这个问题。(Wildfly AS,JPA/Hibernate,PostgreSQL 12) 是的,我知道,int[]。课堂是垃圾,那么解决办法是什么呢?:) 存储过程: 从java调用: 例外情况: 提前感谢
问题内容: 这似乎是一个愚蠢的问题,但是我是这个话题的新手。我正在致力于关于节点js的承诺。我想将参数传递给Promise函数。但是我不知道。 而功能类似于 问题答案: 将Promise包裹在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数: 然后,使用它: ES6: 用:
如何在不使其成为单独变量的情况下传递数组?例如,我知道这是有效的: 但我不想让数组成为变量,因为它只在这里使用。有没有办法做到这一点:
问题内容: 以下作品: 垃圾邮件 但是,如果拿来争论呢? TypeError:spam()恰好接受1个参数(给定0) 鉴于我无权访问函数本身,而只能访问代码对象,执行该函数时如何将参数传递给该代码对象?评估可能吗? 编辑:由于大多数读者倾向于不相信这样做的用处,请参见以下用例: 我想将小的Python函数保存到文件中,以便可以从其他计算机上调用它们。(在这里不必说这个用例会严重限制可能的功能。)腌
问题内容: 看看这个小提琴,我必须更改什么,才能使用我在HTML中定义的参数来评估模板中的表达式?因为我通过了SAVE按钮,所以它应该调用控制器的- function? 我看不出来。感谢帮助! 问题答案: 您可以按照Roy的建议设置两种方式的数据绑定。因此,如果您既想要又绑定到本地范围,则可以 由于要传递这些值,因此可以在指令的控制器中访问它们。但是,如果您想在父作用域的上下文中运行一个函数,这似
问题内容: 我的工厂如下 这是Foo的定义: 好。我不确定如何使用Guice将此参数传递给Foo构造函数? 有任何想法吗? 问题答案: 所有“ Guice构造函数参数”答案在某种程度上似乎都不完整。这是一个完整的解决方案,包括用法: //在实现类上注释构造函数和辅助参数 //使用仅接受辅助参数的create()方法创建工厂接口。 // FooFactory接口没有显式的实现类(Guice Magi