这就是我的plpqsql函数(Postgres函数)的样子
CREATE OR REPLACE FUNCTION public.test(my_ids text[]) RETURNS void
LANGUAGE plpgsql AS $function$
BEGIN
RAISE NOTICE '--- Processing data%', my_ids;
END;
$function$;
并执行上述功能
SELECT test('{"This", "is", "very", "cool"}'::TEXT[]);
直到这里我的代码工作正常,但当我试图从我的应用程序的代码中调用此选择查询时,我不知道如何在查询中设置它。 下面是我的java代码
String query = "SELECT public.test( ? );";
SQLQuery sqlQuery = session.createSQLQuery(query);
List<String> strList = new ArrayList<>();
strList.add("hello");
strList.add("world");
String[] strParam = strList.toArray(new String[strList.size()]);
sqlQuery.setParameter(1, strParam); // this is not working what shall i use for it ?
sqlQuery.executeUpdate();
所以我在代码注释中提到的问题是我如何在查询中设置这个数组。
我可以在JDBC中使用它
Array strParam= conn.createArrayOf("varchar", strList.toArray(new String[strList.size()]));
然后使用setArray方法在preparedStatement中设置此sqlArray!
但是我知道如何用hibernate做这件事?
感谢您的期待!