I have a many to many DB relationship (user, group, and user_group). I want to query for all users in a specific group. Any ideas?
Thanks,
Chris
ps. Yes, I have read all the docs, yes, I am confused. :)
Hibernate version:
2
Mapping documents:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping
package="edu.upenn.isc.fast.beans.plsql">
<class name="FastGroup" table="FAST_GROUP">
<id name="groupId" column="GROUP_ID">
<generator class="native"/>
</id>
</class>
</hibernate-mapping>
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping
package="edu.upenn.isc.fast.beans.plsql"> <!-- schema="SCHEMA_IF_NOT_DEFAULT" -->
<class name="FastUser" table="FAST_USER">
<id name="userId" column="USER_ID">
<generator class="native"/>
</id>
<set name="groupsFastSet" cascade="all-delete-orphan" table="fast_user_group">
<key column="user_id"/>
<many-to-many class="FastGroup" column="group_id"/>
</set>
</class>
</hibernate-mapping>
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping
package="edu.upenn.isc.fast.beans.plsql"> <!-- schema="SCHEMA_IF_NOT_DEFAULT" -->
<class name="FastUserGroup" table="FAST_USER_GROUP">
<many-to-one name="user" column="USER_ID" />
<many-to-one name="group" column="GROUP_ID" />
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close(): session.find(
"select theUser from FastGroup theGroup "
+ "join FastUserGroup userGroup "
+ "join FastUser theUser where theGroup.groupId = ?", fastGroup.getGroupId(),Hibernate.INTEGER);
Full stack trace of any exception that occurs:Code:
Caused by: net.sf.hibernate.QueryException: [b]in expected[/b]: userGroup [select theUser from edu.upenn.isc.fast.beans.plsql.FastGroup theGroup join FastUserGroup userGroup join FastUser theUser where theGroup.groupId = ?]
at net.sf.hibernate.hql.FromParser.token(FromParser.java:102)
at net.sf.hibernate.hql.ClauseParser.token(ClauseParser.java:87)
at net.sf.hibernate.hql.PreprocessingParser.token(PreprocessingParser.java:123)
at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:29)
at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:149)
at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:138)
at net.sf.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:293)
at net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1561)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1532)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1520)
at edu.upenn.isc.fast.hibernate.HibernateSession.retrieveObjects(HibernateSession.java:1021)
... 17 more
Name and version of the database you are using:
Oracle