2015-03-12 3 views
0

Предположим, у меня есть объект Person, который имеет @OneToMany связь с Phone субъектом. Если я хочу охотно принести Phone объекты, связанные с Person, я получил 2 варианта:В чем разница между «JOIN FETCH» и «JOIN»?

SELECT p FROM Person p JOIN p.phones 

или

SELECT p FROM person p JOIN FETCH p.phones 

Так в чем разница между ними?

+0

https://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual/jpa_langref.html#jpa_langref_fetch_joins –

+0

Разница в том, что только «JOIN FETCH» будет получать телефоны с нетерпением. –

+0

JOIN FETCH будет * запросить *, что реализация JPA будет получать телефоны с нетерпением (но не обязательно). –

ответ

0

Помните, что, в конце концов, ПРИСОЕДИНЯЙТЕСЬ НАХОДИТСЯ всегда ПРИСОЕДИНИТЬСЯ. По умолчанию @OneToMany отношения загружаются. Используя JOIN FETCH, вы загружаете связанные объекты заранее.

Вы можете найти более подробную информацию для чтения FETCH JOIN is still a JOIN Петром Новицким