如果我加載一個具有多個PersistentList屬性的對象 - 列表是否自動加載完整列表?或者,ZODB是否等到我訪問列表中的某個元素才能加載它?如果是後者,是否每次訪問元素時加載整個列表,還是隻加載列表的一部分?是ZODB PersistentLists懶惰加載?
4
A
回答
4
提供了您的元素裏面的該列表本身繼承自persistent.Persistent
,它們將按需加載。
但是,不從Persistent
繼承的原始類型和類與PersistentList實例一起加載到內存中。
PersistentList基本上是UserList
(和Persistent
)的子類,它在更改時設置self._p_changed
,以便對列表的更改轉換爲ZODB提交以進行記錄。
+1
我認爲重要的是強調延遲加載是對持久對象的引用的行爲,而不是PersistentList的行爲。您還可以使用持久對象引用的std python列表以及Persistent對象的對象圖進行延遲加載。 –
相關問題
- 1. 懶惰加載不加載
- 2. Eclipselink懶惰加載
- 3. 懶惰加載Ninject
- 4. 懶惰加載flexslider
- 5. Autofac懶惰加載
- 6. Android懶惰加載
- 7. GWT懶惰加載
- 8. 混淆懶惰加載
- 9. 懶惰在Blogger上加載
- 10. 學說懶惰加載
- 11. 懶惰加載視圖
- 12. 懶惰加載CSS與js
- 13. Android listview懶惰加載
- 14. 動畫懶惰加載ArrayAdapter
- 15. 用webpack懶惰加載angular2
- 16. Hibernate懶惰加載HQL
- 17. jQuery mobile listviews懶惰加載
- 18. JPA Hibernate集合不是懶惰加載
- 19. 流利的nHibernate - 不是懶惰加載
- 20. 懶惰的領域總是加載
- 21. 懶惰加載和懶惰評估有什麼區別?
- 22. 在實體框架中加載懶惰集合太懶惰
- 23. 是Data.ByteString.Lazy追加懶惰?
- 24. 懶惰的圖像加載和卸載
- 25. 懶惰加載和卸載圖像
- 26. 是getLine懶惰?
- 27. 你能證明Hibernate懶惰加載?
- 28. iOS 5 ARC懶惰圖像加載庫
- 29. ASP.NET持久緩存(「懶惰加載」式?)
- 30. 懶惰加載不起作用 - jpa
PersistentList內容項在按索引訪問時加載。正常的Python列表在ZODB中作爲一個整體被醃製。 –
Mikko:這會回答這個問題 - 你是否在意添加,作爲回答而不是評論? – jsbueno
呃,比這更復雜一點; PersistentList本身不是延遲加載,但ZODB *是*,前提是記錄從Persistent繼承。看到我的答案。 –