我有以下实体:
员工[@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个场景中需要一次,我可以单独获取它们。
任何想法,如何实现这一点。
由于
答案 0 :(得分:1)
如果您的One To One值不可为空,则可以通过添加optional=false
来实现延迟加载:
@OneToOne(可选= false,fetch = FetchType.LAZY)。
完全是explained here。