java – 在Google App Engine中重构包含JDO @PersistenceCapable类的包

我在需要重构的包中有一组支持JDO持久性的类.

我知道如果你更改了类名,那么你需要更新“BigTables”对象.但是,如果我更改java对象所属的包,这是否意味着“BigTables”中的数据对象需要以某种方式更新?

即com.example.test.Person – > com.example.blah.Person

最佳答案 在
Object Fields and Entity Properties的官方文档中记录了一些这方面的内容.以下是重构规则的结果:

>向类中添加新的可空字段将导致所有现有实体对该字段都为null.
>添加新的集合或数组字段将导致所有现有实体具有该字段的空集合或数组.
>添加新的非可空字段将导致在尝试加载现有实体时抛出异常.
>删除字段不会导致错误;现有实体将保留旧字段,直到它们被加载并再次保存.
>更改字段类型将导致App Engine尝试将旧值转换为新数据类型;如果演员表无效,将抛出异常.数字类型是一个例外;在这种情况下,值被转换而不是转换,溢出不会导致异常.

如果您需要进行如上所述的简单修改无法实现的重构,您可能希望使用App Engine mapreduce library.

点赞