我的Java应用程序中使用了一个ObjectDB数据库,它只包含一种类型的类,我们称之为Record。
我希望我的程序是开放/可扩展的,所以说有人修改了Record类,并添加了另一个字段/变量,如果程序试图在包含前一个类的数据库中存储这个新类型的对象会发生什么?它不起作用吗?如果是这样,是否有办法可以修改所有现有记录,只需将它们的默认值添加到新字段中(例如0)。
提前致谢!
答案 0 :(得分:3)
ObjectDB实现了一种自动模式演化机制,可以在模式更改后透明地使用旧实体对象。当旧模式的实体对象加载到内存中时,它会自动转换为最新实体类的实例。显然,您可以在架构更改后保留修改后的类的实例。
有关详细信息,请参阅ObjectDB手册中的this page。