EclipseLink 如何检测首次访问以进行延迟抓取?
How does EclipseLink detect first access to make lazy fetching?
谁能解释一下 EclipseLink 是如何检测到对字段的首次访问以进行延迟获取的?似乎有一些 magic
,但我找不到如何完成的方法。
如果我对 @OneToMany
关系的理解正确,EclipseLink 会创建 org.eclipse.persistence.indirection.IndirectList
的实例来控制访问。但是我不明白 EclipseLink 对 @ManyToOne
关系做了什么。
在 ManyToOne 或 OneToOne 情况下,EclipseLink 会进行代码增强以检测访问。
这意味着你有一个代理而不是真实的对象。
有文档:
https://www.eclipse.org/eclipselink/documentation/2.7/concepts/mappingintro002.htm#CHDJAHDC
关于编织的章节也很有趣。 https://www.eclipse.org/eclipselink/documentation/2.7/concepts/app_dev005.htm#CCHJEDFH
谁能解释一下 EclipseLink 是如何检测到对字段的首次访问以进行延迟获取的?似乎有一些 magic
,但我找不到如何完成的方法。
如果我对 @OneToMany
关系的理解正确,EclipseLink 会创建 org.eclipse.persistence.indirection.IndirectList
的实例来控制访问。但是我不明白 EclipseLink 对 @ManyToOne
关系做了什么。
在 ManyToOne 或 OneToOne 情况下,EclipseLink 会进行代码增强以检测访问。 这意味着你有一个代理而不是真实的对象。
有文档:
https://www.eclipse.org/eclipselink/documentation/2.7/concepts/mappingintro002.htm#CHDJAHDC
关于编织的章节也很有趣。 https://www.eclipse.org/eclipselink/documentation/2.7/concepts/app_dev005.htm#CCHJEDFH