Hibernate ORM:如何避免获取@OneToOne映射对象?

时间:2012-08-07 18:54:52

标签: java spring hibernate jpa orm

我有以下实体:

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

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

国家[@Id Long id,String name,String currency,String isoCode]

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

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

如何避免获取复合对象?

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

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

由于

1 个答案:

答案 0 :(得分:1)

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

完全是explained here