aspose file tools*
The moose likes Object Relational Mapping and the fly likes many-to-many bidirectional relationship query Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "many-to-many bidirectional relationship query" Watch "many-to-many bidirectional relationship query" New topic
Author

many-to-many bidirectional relationship query

russell stoneyroyd
Greenhorn

Joined: Sep 12, 2006
Posts: 9
Hi
I want to do a bidirectional many-to-many query with HQL but the middle table is a link table. The problem is this is not an object so hibernate is not recognising it and sending back "QueryException in expected: rm" even though it is being used in the query. The mapping is:
<bag name="users" lazy="true" inverse="true" table="RoleMembership">
this has a many-to-many relationship inside it for the User class. The query when changed from objects to tables works perfectly. Are you able to use a link table in an hql query if it is not an object?
Cheers
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336


Are you able to use a link table in an hql query if it is not an object?

No. HQL works on objects only. If you've mapped the many-to-many corretly though, you shouldn't have to. e.g.:


No I can join like this:

[ September 13, 2006: Message edited by: Paul Sturrock ]

JavaRanch FAQ HowToAskQuestionsOnJavaRanch
russell stoneyroyd
Greenhorn

Joined: Sep 12, 2006
Posts: 9
Thanks for your help.
Thing is all I really need to do is a "select count(*)" on the table. Which I'm acessing through a link table that does exist as a Collection but is the wrong object type.
The mapping for the role class users is:

Role membership exists in user but only ever has roles added to it.
From the Role object we want to access the users that have been deleted which is just a simple boolean flag on that user.
Tried using the 2 tables linked together and it didn't work properly.
Not really sure whether I can just use native sql for this one as I only want to return a count of the users.
Cheers
Paul Sturrock
Bartender

Joined: Apr 14, 2004
Posts: 10336


Not really sure whether I can just use native sql for this one as I only want to return a count of the users

Ultimately you could, but in this case you don't really have to.


Tried using the 2 tables linked together and it didn't work properly.

How did it fail? Any exceptions?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: many-to-many bidirectional relationship query