请教db4o delete对象后,关联对象未删除
请教各位兄弟,小弟在使用db4o 存储一个对象CacheV2Element,有3个属性。
|
其中的KeyedCollection 是个复杂些的对象。KeyedCollection 里面可以放任何对象。也可以放KeyedCollection 。在我删除一个CacheV2Element后,发现KeyedCollection 对象并没有删除掉。
|
删除和更新的时候,我加了:
|
请教各位兄弟,小弟在使用db4o 存储一个对象CacheV2Element,有3个属性。
|
其中的KeyedCollection 是个复杂些的对象。KeyedCollection 里面可以放任何对象。也可以放KeyedCollection 。在我删除一个CacheV2Element后,发现KeyedCollection 对象并没有删除掉。
|
删除和更新的时候,我加了:
|
4.Structed Object
如果一个对象中不仅仅有常见的java类型还包含其他的对象,那么在modify 被包含的对象的时候,就会出现一个问题。如果我更新了这些被包含的对象,那么在update delete 的时候,他们会不会被操作到?db4o中 提供了一个 depth的概念。所有object 的默认的update depth为1,这就意味着该object 中的primitive 和 string members 能被update,其他类型的对象将不被update。 同样对应delete 如果想实现 对象中的递归删除, 那同样需要利用db4o中的 delete depth
这是update depth:
[updatePilotSeparateSessionsImprovedPart1]
Db4o.configure().objectClass("com.db4o.f1.chapter2.Car").cascadeOnUpdate(true);
这是delete depth:
[deleteDeepPart1]
Db4o.configure().objectClass("com.db4o.f1.chapter2.Car")
.cascadeOnDelete(true);
Again: Note that all configuration must take place before the ObjectContainer is opened.
其实这里还没有结束,对于delete 会出现这么一个问题,当我通过 delet depth 将一个instance 删除了,他里面包含的某个其他类型的object instance 也被删除了,但是这个
对象还在被其他对象引用,那这个问题怎么办? 现在db4o 还没有解决方法。我们现在只能
小心操作delete。
哈哈,傻了吧?指望通过配置文件实现复杂的业务对象关联关系管理?
我认为这是不可能的!
即使开发实施人员能够配出来,用户自己能实现吗?如果不能,这样的软件对用户有什么吸引力呢?