2012-08-07 43 views
2

我有以下实体:Hibernate ORM:如何避免获取@OneToOne映射的对象?

员工[@Id龙ID,字符串名称,地址@OneToOne branchAddress,@OneToOne地址是homeAddress]

地址[@Id龙ID,街道的字符串,字符串市,字符串邮编,国家国家]

国家[@Id龙ID,字符串名称,字符串货币,字符串isoCode]

我的问题是,当我尝试加载的员工,大部分的时间,我不想地址。提取地址提取地址和后续国家。这些是每次加载员工时执行的额外查询。

我试图使@OneToOne(FetchType.LAZY),但不起作用,它仍然拉动不必要的信息。

我该如何避免抓取复合对象?

我想最终的结果不包含地址对象,因为它需要在20场景中一次,我可以分别获取它们。

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

感谢

回答

1

如果我们oneToOne值不是空的,你可以通过添加optional=false实现延迟加载: @OneToOne(可选=假,取= FetchType.LAZY)。

这是完美的explained here

希望它有帮助。