Предположим, у меня есть следующее:
@Entity
class Product {
@OneToOne(Lazy)
ProductType type;
}
@Entity
class ProductType {
@ManyToOne(Lazy)
ProductFamily pf;
}
@Entity
class ProductFamily {
String name;
// ...
}
По умолчанию OpenJPA имеет глубину выборки -1 , и кажется, что если я запрашиваю Product:
select p from Product p
в конечном итоге он запросит что-то вроде этого:
select p from product p
left join product_type
left join product_family
Я прочитал о глубине выборки и могу ограничить глубину выборки до 1 , что означает, что запрос будет извлекать только непосредственные отношения:
select p from product p
left join product_type
но как я могу настроить запрос, чтобы можно было указать выборочное соединение для вложенных отношений ? Я пробовал и left fetch join
, и добавление полей в план выборки, но это не работает.
, чтобы прояснить: я хочу, чтобы all *-to-One relations
по умолчанию был ленивым, а затем настраивал отношения с помощью fetch joins
, но кажется, что OpenJPA игнорирует ленивую конфигурацию.