2011-11-04 2 views
0

В этом конкретном сценарии, скажем, у меня есть пара таблиц {A, B} и их сгенерированных классов JPA. Существует связь FK на колонку X из таблицы А -> Таблицы B и этот столбец X в таблице А были аннотациейJPA Несколько запросов при присоединении

@OneToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "X", referencedColumnName = "X", insertable = false, updatable = false). 

Я Именованный JPA Query, который соединяющий две таблицы в этой колонке " ИКС". При выполнении я получаю правильные результаты, но несколько запросов запускаются с БД. На сопоставление данных каждого соединения, похоже, что запрос генерируется и запускается с БД. Это перегружает нашу базу данных. По моему мнению, на LAZY fetch не JPA должен выполнять мастер-запрос только один раз и возвращать весь результирующий набор, а не порождать дополнительные дочерние запросы для соответствия данных соединения.

ответ

0

Вам не нужно выполните запрос соединения, чтобы получить данные. Если вы укажете OneToOne, Hibernate свяжет два объекта. LAZY означает, что запрос на получение связанного объекта будет запущен только тогда, когда вам понадобится .

Смежные вопросы