Alright, confirmed the query work on hibernate 3.3. It seems that after hibernate 3.3, any implicit join syntax will trigger the additional inner join. I have tried 3.6.8 and 3.5.6 and both version added the additional inner join to the generated query.