所以我不断收到标题错误。我用来创建查询的字符串是
select p from Product p where p.productType.productTypeId in (:productTypeIds)
这是java的剪辑
List<Long>partTerminologyIds = getProducTypeds(partTerminologys);
..........................................................................
query.setParameter("partTerminologyIds", productTypeIds);
我不知道为什么我会收到此错误,是的,我的数据库中的partTerminolgyId是数字18。
任何想法???
答案 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(我认为是糟糕的默认)。