英文原版:https://www.objectdb.com/java/jpa/entity/schema
只要没有对 @Entity类型的持久化字段的定义进行更新,那么对于ObjectDB来说都是透明的。例如:添加、删除、改变构造函数,方法,和非持久化字段。
如果对持久化字段的定义做了更新,那么ObjectDB将旧的数据对象加载到内存中后,会对旧数据自动进行转换,而当再次存储时,会将其存储到新模式中,规则如下:
对于新模式中的每个字段,
字段的匹配规则:
对于新模式中的字段,如果旧模式中有相同名称、相同类型或者可转换类型的字段,则认为这两个字段是匹配的
可转换类型规则:
重命名需要在配置信息中显示地声明这些更新。通过元素配置。
注意:在重命名或者移动类、包等此类修改数据库Schema的操作前,一定要先备份数据库,
默认配置文件包含空的元素。如果元素不是空的,则objectdb会认为schema有更新,会应用元素中的配置的信息。
<schema>
<package name="com.example.old1" new-name="com.example.new1" />
<package name="com.example.old2" new-name="com.example.new2">
<class name="A" new-name="NewA" />
<class name="B">
<field name="f1" new-name="newF1" />
<field name="f2" new-name="newF2" />
class>
package>
<package name="com.example.old3">
<class name="C" new-name="NewC" >
<field name="f3" new-name="newF3" />
class>
<class name="C$E" new-name="NewC$E" />
package>
schema>
需要注意的是: