HQL queries of the form
"from EntityA a left join fetch a.entityB b left join fetch b.items"
fail with a NullPointerExeption when EntityA and EntityB have a one-to-one (@OneToOne) relationship and EntityB.items is an element collection (@ElementCollection, aka collection of values).
For comparison, the following HQL queries are all admissible (which intends to demonstrate that no particular clause of the the above HQL is incorrect):
"from EntityB b left join fetch b.items"
"from EntityA a left join fetch a.entityB"
"from EntityA a left join fetch a.entityB.items"
"from EntityA a left join fetch a.entityCs c left join fetch c.items" (where EntityA and EntityC have a one-to-many (@OneToMany) relationship, and EntityC.items is an element collection)
Test code is attached. The log output along with thrown exception is attached as log.txt.