<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();
请检查我的答案 –
因为你是新手。如果答案完成您的问题,请接受它 –