这是我的代码:
List<Long> ids = new ArrayList<Long>();
ids.add(10L);
ids.add(11L);
SQLQuery sqlQuery = session.createSQLQuery(
"select type_id from Types where parent_type_id in (:typeIds)");
sqlQuery.setParameter("typeIds", ids);
List<Object[]> results = sqlQuery.list();
我在执行上述查询时收到此错误。 仅供参考,当我传递数组或 ArrayList 作为参数时,我刚刚看到了这个问题。
ERROR util.JDBCExceptionReporter: ERROR: operator does not exist:
bigint = bytea Exception in thread "main"
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
query.setParameterList("typeIds",ids);
使用
setParameterList();
解决了
如果
null == ids
,您将得到同样的错误。
此外,当列表中的一项为
NULL
时,也会发生此错误。