JPQL: Inner Join without duplicate records

Ниже приведен вопрос, который предположительно был частью официального экзамена от Sun:

Сущность Reader имеет двунаправленную связь "один-ко-многим" с сущностью Book. сущностью Book. Персистируются две сущности Reader, каждая из которых имеет две сущности Book связанных с ними. Например, у читателя 1 есть книга a и книга b, а у читателя 2 - книга c и книга d. Какой запрос возвращает Коллекция, состоящая менее чем из четырех элементов?
A. SELECT b.reader FROM Book b
B. SELECT r FROM Book b INNER JOIN b.reader r
C. SELECT r FROM Reader r INNER JOIN r.books b
D. SELECT r from Book b LEFT JOIN b.reader r LEFT JOIN FETCH r.books

Заданный ответ C, который я считаю неверным. Насколько я понимаю, SQL с внутренним соединением двух таблиц будет сгенерирован провайдером JPA. Поэтому во всех случаях мы получим 4 записи. Я провел тест с отношением один-ко-многим, и дубликаты были включены.

Кто не прав, я или Sun?

7
задан Moose on the Loose 20 November 2011 в 04:43
поделиться