假设我用多对多关系连接了数据库中描述的图。每个数据库行都被映射到具有Linked
属性的Node
类上,该属性指向所有其他链接的节点。
如果我从数据库中load()
任何节点,Hibernate会将所有其他节点级联加载到内存中吗?如果不是,那么它将如何填充指向未加载节点的Linked
属性?
发布于 2012-10-03 17:13:37
返回具有给定标识符的给定实体类的持久实例,假设该实例存在。当访问非标识符方法时,此方法可能会返回按需初始化的代理实例。
Hibernate (如果没有另外指定)将延迟加载实例并代理它们,因此当您尝试访问某个字段时,代理将从您的数据库中获取值。
在您的特定情况下,链接的属性将主要指向也将具有延迟加载属性的代理。Hibernate这样做是为了不在一个查询中加载整个数据库(或者在本例中是load方法)。
https://stackoverflow.com/questions/12712420
复制