<hibernate-mapping package="entity.associative">
<class name="UserGroup" table="user_group">
<meta attribute="class-description">
This class contains user group information.
</meta>
<composite-id>
<key-property name="userID" column="u_id"/>
<key-property name="groupID" column="g_id"/>
</composite-id>
<property name="hours" type="double">
<column name="hours"/>
</property>
</class>
</hibernate-mapping>
<hibernate-mapping package="entity.user">
<class name="User" table="user">
<meta attribute="class-description">
This class contains user information.
</meta>
<id name="userID" type="string">
<column name="u_id" length="50"/>
</id>
<property name="fName" type="string">
<column name="f_name" length="100"/>
</property>
.
.
.
</hibernate-mapping>
加入,我發現了錯誤HQL內跨越不同的包
org.hibernate.hql.internal.ast.QuerySyntaxException:
Path expected for join!
[FROM entity.user.User u INNER JOIN UserGroup ug
where u.userID = ug.userID and ug.groupID = 'EORG']
最有可能的,因爲它們是在不同的包 - 一個在entity.user
,另一個entity.associative
。有沒有辦法改變我的查詢?
我當前的查詢是:
tx = session.beginTransaction();
String queryStr = "FROM User u INNER JOIN UserGroup ug where u.userID = ug.userID and ug.groupID = 'EORG'";
Query query = session.createQuery(queryStr);
userList = (ArrayList<User>) query.list();
請檢查我的答案 –
因爲你是新手。如果答案完成您的問題,請接受它 –