2012-10-25 78 views
0

我想執行Hibernate查詢以獲取組中的「協調器」數量。 「協調員」具有管理員角色。休眠中的非法參數異常

在更高層次上,我有兩個表:domaingroup和group_coordinators。後面的表格有2列:coordinators_id和domaingroup_id。我想檢查特定用戶(顯示在coordinators_id)和組(顯示在domaingroup_id中)的行數。

我得到的錯誤,

java.lang.IllegalArgumentException異常: org.hibernate.hql.ast.QuerySyntaxException: DomainGroup.Group_Coordinators不\映射

的查詢,

的代碼,

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

你有兩個大錯誤:福斯特,你必須使用HQL查詢,而不是表名的Java類和成員名稱。然後你不能從java集合中選擇;相反,你必須指定類。

在你的例子中它會是。像

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

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

(因爲我在班上的人,你沒有提供猜例子中,有映射的成員變量Id和DomainGroupId)

+0

約翰娜 - 感謝。但在這兩個查詢中,沒有關於組協調員的信息...... –