【发布时间】:2011-12-05 18:27:44
【问题描述】:
假设我有以下内容:
@Entity
class Product {
@OneToOne(Lazy)
ProductType type;
}
@Entity
class ProductType {
@ManyToOne(Lazy)
ProductFamily pf;
}
@Entity
class ProductFamily {
String name;
// ...
}
默认情况下,OpenJPA 的 fetch depth 为 -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 忽略了惰性配置。
【问题讨论】:
-
你如何增强你的实体?