[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2312?page=c...
]
Sebastian Hennebrueder commented on HHH-2312:
---------------------------------------------
I forgot to say that I tested this against Hibernate from SVN revision 10998 with the same
result.
You can test this by changing the hibernate.cfg.xml It includes both types of mapping.
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira