使用db4o进行延迟加载

时间:2012-07-11 13:04:23

标签: lazy-loading db4o

我想知道是否有任何方法可以使用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要么完全激活一个对象,要么只是根据我的需要激活对象的某些字段,这将是很好的。

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,db4o的透明激活应该足以完成你想要的所有“子对象”也实现了Activatable接口(当然,你在配置中添加了TransparentActivationSupport

因此,在您的示例中,当 house 被激活时,其所有字段都将变为非空但不会被激活;只有当您访问这些字段时,它们才会被激活。

您是否可以发布导致您相信所有对象都被激活的代码(或简单测试)?

最佳