aurelije (6) [Avatar] Offline
I've read several times chapter 15.4 and always had to scratch my head with few misleading and fuzzy sentences.

Example 1:
Chapter15.4.4. Explicit joins, page 393:

For example, the following query and retrieves items that have no bids, and items with bids of a minimum bid amount:
select i, b from Item i
left join i.bids b on b.amount > 100

So we have now 3 types of Item objects:
1) Items without bids
2) Items with bids, where at least one bid is greater then 100
3) Items with bids, where all bids are lower then 100

The sentence "retrieves items that have no bids, and items with bids of a minimum bid amount" could mean that only type 1 and 2 of Items will be fetched, but that is not true, all items will be fetched but just not all Bids as second result in result pair.
aurelije (6) [Avatar] Offline
Re: JPQL join explanations
For inner join

select i from Item i
join i.bids b
where b.amount > 100

Maybe it should be clarified that the result is list of all items that have at least one bid having amount > 100 but for each that item all bids will be loaded on item.getBids, not just those amount > 100

Message was edited by:
aurelije (6) [Avatar] Offline
And more then one year later the final version of book is out, but problems I reported here are not addressed at all. I am so disappointed.