Hibernate中的非法参数异常

时间:2012-10-25 16:05:05

标签: hibernate

我想执行Hibernate查询以获取组内“协调员”的数量。 “协调员”具有类似管理员的角色。

在更高级别,我有两个表:domaingroup和group_coordinators。后一个表有两列:coordinators_id和domaingroup_id。我想检查特定用户的行数(显示在coordinators_id中)和组(显示在domaingroup_id中)。

我收到了错误,

  

java.lang.IllegalArgumentException异常:   org.hibernate.hql.ast.QuerySyntaxException:   DomainGroup.Group_Coordinators不是\ mapped

查询,

SELECT Coordinators_Id=:followerId FROM DomainGroup.Group_Coordinators 
WHERE Coordinators_Id=:followerId and DomainGroup_id=:followingId

代码,

 class DomainGroup ... {

                /**
                 * List of coordinators for this group.
                 */
                @Size(min = 1, message = MIN_COORDINATORS_MESSAGE)
                @ManyToMany(fetch = FetchType.EAGER, cascade = 
        { CascadeType.PERSIST })
                @JoinTable(name = "Group_Coordinators")
                private Set<Person> coordinators;

请告诉我如何正确执行此查询。

谢谢, 凯文

1 个答案:

答案 0 :(得分:1)

你有两大错误:Forst你必须在HQL查询中使用Java类和成员名,而不是表名。然后你不能从java集中选择;相反,你必须指定类。

在你的例子中,它将是......喜欢

FROM Person WHERE Id=:followerId and DomainGroupId=:followingId

SELECT count(Id) FROM Person WHERE DomainGroupId=:followingId

(对于我猜在类Person中的例子,你没有提供,有映射的成员变量Id和DomainGroupId)