Hello, I suspect a (major) bug here, there is wrong behaviour that occurs since version 3.2.2 and has never occurred with older versions (3.2.1, 3.1, 3.0, 2.x).
Hibernate version: 3.2.2
Mapping documents: (the mapping is only a partial example)
<class name="Segment" lazy="false">
</class>
<class name="Customer">
<id name="customerId"/>
<many-to-one name="segment" class="Segment" fetch="select"/>
</class>
When I execute HQL "select c.segment from Customer c", since 3.2.2 there is a severe problem: The generated SQL is an inner join between the tables of Customer and Segment.
This is not OK of course, since for Customers with a null segment the records are no longer returned!
All versions before 3.2.2 used to generate a select only on the Customer table, and then fetch the segement immediately afterwards through separate select(s). What is weird is that a "from Customer c" does not generate the inner join but still shows correct behaviour (i.e. the Segment for each retrieved customer is read afterwards with separate select statements).
The bug is the same as described in
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2402