fetch = "join" и hql - PullRequest
       42

fetch = "join" и hql

2 голосов
/ 14 марта 2011

Я очень запутался в атрибуте fetch в сопоставлении «многие к одному» (класс Order):

<many-to-one name="Product" column="ProductId" lazy="false" fetch="join" />

Теперь, если я напишу hql-запрос вроде

from Order where Order.OrderId = x

Разве Hibernate не должен генерировать один SQL-запрос, присоединяющийся к Продукту? В моем случае происходит два запроса, и я не уверен, что атрибут fetch в отображении по какой-то причине игнорируется ...

1 Ответ

1 голос
/ 14 марта 2011

HQL не уважает fetch="join".Вам нужно сделать это явно:

from Order o
join fetch o.Product
o.OrderId = x

(я мог бы добавить, что lazy="false" почти всегда плохая идея, но это поможет вам)

...