If we translate this to EJB-speak i would have a Person entity and a Car entity.

In the second set of result person 1 is duplicated because of the join criteria. the same thing happens for me in the hibernate query (behind my ejb's) but the problem is that I now have 2 Person entities when there is > 1 car attached to it. This ONLY happens when i am doing an EAGER fetch. When I do a LAZY fetch everything works fine. I guess this is because the join spans less tables.

My actual program has more tables (4 tables) in the join than this but hopefully this provides an easy to understand description of the problem.