运算符不存在:bigint = bytea

问题描述 投票:0回答:3

这是我的代码:

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)
hibernate postgresql
3个回答
5
投票
query.setParameterList("typeIds",ids);

使用

setParameterList();

解决了

4
投票

如果

null == ids
,您将得到同样的错误。


1
投票

此外,当列表中的一项为

NULL
时,也会发生此错误。

© www.soinside.com 2019 - 2024. All rights reserved.