[hibernate-issues] [Hibernate-JIRA] Created: (HHH-2312) criteria with annotation mapping leads to bad join on a 1:n:n relation

Sebastian Hennebrueder (JIRA) noreply at atlassian.com
Fri Dec 15 17:16:04 EST 2006


criteria with annotation mapping leads to bad join on a 1:n:n relation
----------------------------------------------------------------------

         Key: HHH-2312
         URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2312
     Project: Hibernate3
        Type: Bug

    Versions: 3.2.1    
 Environment: Ubuntu Linux
PostgreSQL 8.0 database
    Reporter: Sebastian Hennebrueder
 Attachments: HibernateTest.zip

I have a 1:n to 1:n relation, ie. Forest has many Trees has many Leafs.

I try to select all Trees having a leaf which name is test.


session.createCriteria(Tree.class).createCriteria("leafs").add(Restrictions.eq("name", "test")).list();


If I use XML mapping, I receive a proper query:

select this_.id as id1_1_, leaf1_.id as id0_0_, leaf1_.name as name0_0_, leaf1_.tree_id as tree3_0_0_
  from tree this_ inner join leaf leaf1_ on this_.id=leaf1_.tree_id where leaf1_.name=?


but if I use annotation mapping, I get a very ugly join returning not even the correct values:
select this_.id as id2_3_, this_.forest_id as forest2_2_3_, leaf1_.id as id0_0_, leaf1_.tree_id as tree3_0_0_,
leaf1_.name as name0_0_, tree4_.id as id2_1_, tree4_.forest_id as forest2_2_1_, forest5_.id as id1_2_
from Tree
 this_ inner join Leaf leaf1_ on this_.id=leaf1_.tree_id
  left outer join Tree tree4_ on leaf1_.tree_id=tree4_.id
  left outer join Forest forest5_ on tree4_.forest_id=forest5_.id where leaf1_.name=?


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira




More information about the hibernate-issues mailing list