Pomiń array[...]
z twojego SQL:
WHERE CAST(:commoditySpecIds AS BIGINT[])
a następnie przekaż listę identyfikatorów jako ciąg znaków, który wygląda tak:
"{1,2,3,4}"
Domyślna funkcja toString() dla List zwykle zwraca coś takiego:"[1,2,3]"
, więc możesz zrobić coś takiego:
String literal = commoditySpecsIds.toString();
literal = "{" + literal.substring(1,literal.length() - 1) + "};
a następnie przekaż to swojej warstwie zaciemniającej:
setParameter("commoditySpecIds", literal)