首页
学习
活动
专区
圈层
工具
发布

db4o关注
EN

Stack Overflow用户
提问于 2009-01-12 02:47:06
回答 2查看 560关注 0票数 3

我有兴趣在我的桌面应用程序中使用db4o作为我的持久性机制,但是我关心一些事情。

第一关注事项:意外地裁剪非常复杂的对象图.

假设我有一棵高为10的树,我取了根,它如何处理我再次存储根对象?

根据我的理解,它不获取整个树,而是获取前5个引用层。

所以..。如果我对根进行了简单的更改,然后将其存储起来,它是否会将节点剪裁到树的更远的位置,实质上就是删除它们。

如果不是..。它怎么处理这件事?

第二个关注点:在较大对象图中提取子图

用我上面的树例子..。如果数据库包含1棵庞大的树,我可以查询其中的单个节点吗?由于.store只被调用一次,我的数据库是否认为它只包含1条“记录”?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2009-01-13 12:56:16

您必须非常小心,因为有两种情况可能发生:您可以将整个db拖到内存中,或者只是部分图(其余的对象将为null)。

在db4o中,有激活器和更新深度的概念,它可以在dbv40配置上配置,也可以在获取对象时配置。这就是你告诉db40在获取引用对象时你希望他走多深的方式。查看db4o网站,有关于它的文档:

http://developer.db4o.com/Resources/view.aspx/Reference/Object_Lifecycle/Activation

http://developer.db4o.com/Resources/view.aspx/Reference/Object_Lifecycle/Update_Depth

票数 2
EN

Stack Overflow用户

发布于 2009-09-27 20:16:39

DB4O的透明激活应该可以解决您在这里表达的大部分担忧。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/434284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档