Implicit join determinism in query language for 3.2
Implicit join determinism Consider a mapping such as .... and an HQL query like select a.id, a.currency from Asset a Since Hibernate 3.2.2 this query generates an inner join on Asset with Currency which means that Assets with a NULL currency are not returned by the query anymore. This makes implicit joins more deterministic. To get Assets with a NULL currency just use select a.id, c from Asset a left join a.currency as c Path expressions joining across a collection throw exception Implicit joins "across" a collection has never been a supported syntax. It happened to sorta kinda work in some previous releases. For example the following query is completely illegal and has never really been supported: select f.bars.baz from Foo f Now throws an exception. Despite the always present warning in the documentation that this is an illegal path expression if bars is a collection, users found this to be working in some cases with Hibernate 3.1. This is no longer the case, an error is thrown. As always, the correct syntax is an explicit join: select b.baz from Foo f join f.bars b