是否可以使用Hibernate处理大型连接图?

时间:2012-10-03 16:05:46

标签: java hibernate graph persistence

假设我在数据库中描述的连接图与多对多关系。每个数据库行都反映在具有Node属性的Linked类上,该属性指向所有其他链接节点。

如果我load()来自数据库的任何节点,Hibernate会将所有其他节点级联加载到内存中吗?如果没有那么它将如何填充指向未加载节点的Linked属性?

1 个答案:

答案 0 :(得分:0)

load javadoc说:

  

返回给定实体类的持久化实例   给定标识符,假设实例存在。这个方法可能会   当a时,返回按需初始化的代理实例   访问非标识符方法。

Hibernate(如果没有另外指定)将延迟加载实例并代理它们,因此当您尝试访问字段时,代理将从您的数据库中获取值。

在您的特定情况下,Linked属性将主要指向将具有延迟加载属性的代理。 Hibernate使得不在一个查询中加载整个数据库(或者在这种情况下,加载方法)。