2

我有以下实体:

Employee [@Id Long id, String name, @OneToOne Address branchAddress, @OneToOne Address homeAddress]

地址 [@Id Long id, String street, String City, String zipcode, Country country]

Country [@Id Long id, String name, String currency, String isoCode]

我的问题是当我尝试加载员工时,大多数时候我不想要地址。获取地址获取地址和后续国家。这些是每次我加载员工时都会执行的额外查询。

我试过制作 @OneToOne(FetchType.LAZY) 但不起作用,它仍然会提取不需要的信息。

如何避免获取复合对象?

我希望最终结果不包含地址对象,因为在 20 个场景中需要一次,我可以单独获取它们。

任何想法,如何实现这一点。

谢谢

4

1 回答 1

1

如果我们的 oneToOne 值不可为空,您可以通过添加optional=false:@OneToOne(optional=false, fetch = FetchType.LAZY) 来实现延迟加载。

在这里得到了完美的解释

于 2012-08-07T19:27:04.163 回答