如果我加载一个具有多个PersistentList属性的对象 - 列表是否会自动加载?或者ZODB是否等到我访问列表中的元素才能加载它?如果是后者,它是在每次访问元素时加载整个列表,还是只加载列表的一部分?
答案 0 :(得分:4)
如果您的元素在中,则列表本身是从persistent.Persistent
继承的,它们将按需加载。
但是,不从Persistent
继承的原始类型和类与PersistentList实例一起被加载到内存中。
PersistentList基本上是UserList
(和Persistent
)的子类,在更改时设置self._p_changed
,以便对列表的更改转换为ZODB提交以供其记录。