现在的位置: 首页 > 综合 > 正文

DB4O中的继承问题

2013年03月10日 ⁄ 综合 ⁄ 共 409字 ⁄ 字号 评论关闭

在使用DB4O开发一个真是项目的时候,遇到一个问题。

问题描述:

P类为父类,C类继承自P类。当程序写好后发现,向P类储存的任何数据,都会自动储存到父类中去。

进一步描述

在实际应用中,场景是这样的 :“在线体验类”是一个实体类。“以往作品”也是一个实体类。当我建设好后发现,其实“以往作品”的很多字段和“在线体验”是一样的。比如都有“访问地址”和“图片地址”。于是我就使“以往作品”继承了“在线体验”。可是呢,最后向“以往作品类”中插入数据后,发现也插入到了“在线体验”类中,这是我不希望看到的。

问题分析:

可能是考虑到效率因素,db4o直接令子类引用父类,而不是自己再复制一个。

解决方案:

父类P只能不再作为一个真实实体使用,而是建立了一个P2作为继承P作为一个实体。P就变成了一个公共父类。

待研究的问题:

这并不是一个最好的解决方案,我想应该有地方设置使得查询可以分辨出子类还是父类,或者可以插入数据的时候,就采用隔离的方式。

抱歉!评论已关闭.