Lassen Sie das array[...]
weg aus Ihrem SQL:
WHERE CAST(:commoditySpecIds AS BIGINT[])
und übergeben Sie dann die Liste der IDs als Zeichenfolge, die wie folgt aussieht:
"{1,2,3,4}"
Der Standard toString() für Listen gibt normalerweise etwas zurück wie:"[1,2,3]"
, also könnten Sie so etwas tun:
String literal = commoditySpecsIds.toString();
literal = "{" + literal.substring(1,literal.length() - 1) + "};
und übergeben Sie das dann an Ihre Verschleierungsschicht:
setParameter("commoditySpecIds", literal)