错误:运算符不存在:字符变化=数字

时间:2012-02-09 20:22:41

标签: postgresql jpa

所以我不断收到标题错误。我用来创建查询的字符串是

  select p from Product p where  p.productType.productTypeId in (:productTypeIds)

这是java的剪辑

    List<Long>partTerminologyIds = getProducTypeds(partTerminologys);
    ..........................................................................
    query.setParameter("partTerminologyIds", productTypeIds);

我不知道为什么我会收到此错误,是的,我的数据库中的partTerminolgyId是数字18。

任何想法???

3 个答案:

答案 0 :(得分:4)

所以最终它成了一个&#34;外键&#34;是一个表中的字符串,另一个表中是数字。我使用新脚本重建了数据库,并没有对新数据库进行反向工程。

答案 1 :(得分:1)

此查询无效:

select p from Product p where  p.productType.productTypeId in (:productTypeIds)

你的意思是:

SELECT p FROM product p WHERE p.productTypeId IN (:productTypeIds)

或者更确切地说:

SELECT * FROM product p WHERE p.productTypeId IN (:productTypeIds)

如果是这样,查询中productTypeId的数据类型是什么。请澄清。

答案 2 :(得分:0)

这看起来像是一个Hibernate查询。你需要query.setParameterList指定一个集合值,否则Hibernate不会知道将:productTypeIds扩展到占位符列表而不是简单地将列表绑定为可序列化的blob(我认为是糟糕的默认)。