Hibernate IllegalArgumentException-property:id的getter方法使用HQL IN子句

Hibernate IllegalArgumentException-property:id的getter方法使用HQL IN子句,hibernate,grails,hql,Hibernate,Grails,Hql,我有以下HQL(简化以显示错误): 其中skills是技能列表 执行时,会生成以下错误: property.BasicPropertyAccessor - IllegalArgumentException in class: core.Skill, getter method of property: id 但是如果我使用这个HQL,它工作得很好: Skill.findAll("from Skill as skill where skill.id in(:skills)",[skills:s

我有以下HQL(简化以显示错误):

其中
skills
是技能列表

执行时,会生成以下错误:

property.BasicPropertyAccessor - IllegalArgumentException in class: 
core.Skill, getter method of property: id
但是如果我使用这个HQL,它工作得很好:

Skill.findAll("from Skill as skill where skill.id in(:skills)",[skills:skills*.id])

第一个有什么问题?(我正在使用Grails2.3.7)

是否需要使用hql?您可以在不需要grails机制或hibernate标准的地方使用它,因为我正在修改旧代码,并且可以修改它,但我很好奇为什么它不起作用。
Skill.findAll("from Skill as skill where skill.id in(:skills)",[skills:skills*.id])