java - hibernate ORM : How to avoid fetching @OneToOne mapped objects?

标签 java spring hibernate jpa orm

我有以下实体:

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

Address [@Id Long id, String street, String City, String zipcode, Country 国家]

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

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

我已经尝试制作 @OneToOne(FetchType.LAZY) 但没有用,它仍然提取不需要的信息。

如何避免获取复合对象?

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

任何想法,如何实现这一目标。

谢谢

最佳答案

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

完美explained here .

关于java - hibernate ORM : How to avoid fetching @OneToOne mapped objects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852302/

相关文章:

java - Joshua Bloch 构建器模式 - 关注线程安全时的好主意?

具有静态setter函数的java bean

spring data mongodb自定义接口(interface)ConflictingBeanDefinitionException

java - 编辑/更新java spring

java - hibernate : Difference between @ Embedded annotation technique and @OneToOne annotation Technique

java - 持久化和ormapping之间的关系

java - Android : sending data to a WebView with loadUrl or retrieving it from the WebView with a JavascriptInterface? 中什么更快

java - Android Studio 中的 Gradle 项目未导入库

java - Spring 启动: header value encoding

java - android中USB多播的问题