假设我在数据库中描述的连接图与多对多关系。每个数据库行都反映在具有Node
属性的Linked
类上,该属性指向所有其他链接节点。
如果我load()
来自数据库的任何节点,Hibernate会将所有其他节点级联加载到内存中吗?如果没有那么它将如何填充指向未加载节点的Linked
属性?
答案 0 :(得分:0)
返回给定实体类的持久化实例 给定标识符,假设实例存在。这个方法可能会 当a时,返回按需初始化的代理实例 访问非标识符方法。
Hibernate(如果没有另外指定)将延迟加载实例并代理它们,因此当您尝试访问字段时,代理将从您的数据库中获取值。
在您的特定情况下,Linked属性将主要指向将具有延迟加载属性的代理。 Hibernate使得不在一个查询中加载整个数据库(或者在这种情况下,加载方法)。