我想知道是否有任何方法可以使用db4o延迟加载对象? 我阅读了所有教程,似乎这个功能不存在。
让我们清楚我的观点。 例如,假设我有一个包含50个复杂字段的House对象。
House
1) location : Country (complex object)
2) window : Window (complex object)
3) livingRoom : Room (complex object)
.
.
.
50) door : Door (complex object).
让我们说,在我的节目的某个地方,我只需要房子的位置。 如果我打开db4o的透明激活机制,当我访问位置字段时,整个house对象是 激活,这意味着所有字段都填充了值。 这很愚蠢,因为所有其他大而复杂的领域(在这种情况下我都不会使用)从数据库中检索出来是无用且昂贵的。
如果我有办法告诉db4o要么完全激活一个对象,要么只是根据我的需要激活对象的某些字段,这将是很好的。
答案 0 :(得分:0)
如果我理解正确的话,db4o的透明激活应该足以完成你想要的所有“子对象”也实现了Activatable接口(当然,你在配置中添加了TransparentActivationSupport)
因此,在您的示例中,当 house 被激活时,其所有字段都将变为非空但不会被激活;只有当您访问这些字段时,它们才会被激活。
您是否可以发布导致您相信所有对象都被激活的代码(或简单测试)?
最佳