【问题标题】:Hibernate, about Persistence layer cacheHibernate,关于 Persistence 层缓存
【发布时间】:2018-01-19 03:25:36
【问题描述】:

我一直在阅读Java Persistence with Hibernate,在这本书中,它写在第9章第1页。 390 持久层缓存确保以下内容:

在对象图中的循环引用的情况下,持久层不易受到堆栈溢出的影响。

请帮助我理解为什么持久层不易受到堆栈溢出的影响?

谢谢!

【问题讨论】:

  • 一个假设它检查周期...
  • @azurefrog 我理解,它必须检查周期,但我问这个问题是为了更详细地了解 Hibernate 如何处理它。

标签: java hibernate jpa


【解决方案1】:

嗯,我确实找到了一个非常明确的答案,但我在 Hibernate 3.5 文档中找到了一些东西:

5.2。休眠类型

5.2.1。实体和价值观

关于持久化服务,Java 语言级别的对象分为两类:

实体独立于任何其他持有对该实体的引用的对象而存在。将此与通常的 Java 模型进行对比,其中未引用的对象被垃圾收集。实体必须明确保存和删除。然而,保存和删除可以从父实体级联到其子实体。这与对象持久性的 ODMG 模型的可达性不同,并且更接近于应用程序对象通常在大型系统中的使用方式。 实体支持循环引用和共享引用。它们也可以进行版本控制。

根据粗体突出显示的行,我认为 Hibernate 内部会检查这种循环引用,并且不会加载超过一层的嵌套实体。很像 Java 中的静态类具有自己类型的静态引用成员的情况。

【讨论】:

  • 我不接受我自己的答案,因为它不是确切的答案。并且有人可以发布有关 Hibernate 内部机制的更好答案...
猜你喜欢
  • 2012-05-03
  • 2011-06-28
  • 2011-09-06
  • 1970-01-01
  • 2011-05-09
  • 2013-09-03
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多