您的位置:首页 > 编程语言 > Java开发

如何修改你的数据模型(GAE for java)

2010-10-02 11:48 405 查看
网上有篇介绍如何修改GAE数据模型的文章《Google App Engine中如何修改你的数据模型》,该文章为民间高手翻译,在谷歌官方文档中的名字为《更新模型的架构》,这两篇文章为同一篇英文文章的不同中文翻译,内容是介绍如何修改在现的GAE程序的数据模型,这对GAE程序的代码升级至关重要,因为在线程序往往会有一些有价值的数据希望在代码升级后能正常使用。这篇文档是针对使用python进行GAE开发而言的,对使用java进行GAE开发并不适用。在网上找了好久,没有找到适用于java的资料。一个偶然的机会竟然在GAE的帮助文件里找到了相关的内容:文章《定义数据类》的“对象字段和实体属性”部分,真是踏破铁鞋无觅处,得来全不费功夫。本人仔细阅读了该部分内容,并对相关的规则进行了验证,现总结如下:

1.数据类 增加字段;
如果将一个数据存储区实体载入对象中,对于该对象中的某一个字段,实体中没有对应的属性,且该字段是可设为 null 的单值类型,则该字段将设置为 null。在将该对象保存回数据存储区时,null 属性将在数据存储区中被设置为 null 值。如果该字段不是可设为 null 的值类型,则载入没有对应属性的实体将引发异常。 例如:若增加的字段为String,则从数据库中查询该对象时,增加的字段值为null; 若增加的字段为long,则从数据库中查询该对象时,会引发异常,解决方法之一:将字段类型由long改为Long

2.数据类 删除字段
如果实体具有一个在对象中没有对应字段的属性,则无法从该对象访问该属性。如果将对象保存回数据存储区,将删除这个额外的属性。

3.数据类 修改字段类型
如果某个实体具有一个值类型与对象中对应字段的类型不同的属性,则 JDO 会尝试将该值转换成字段类型。如果无法将该值转换成字段类型,则 JDO 将引发 ClassCastException。在值为数字(长整型或双精度浮点型)的情况下,将对该值进行转换 (convert),而不是对类型进行转换 (cast)。如果数字属性值超出字段类型的表示范围,则转换将溢出,而不会引发异常。

4.数据类 修改字段名称
字段名成修改相当于删除原有字段,再增加一个新字段。

参考资料:
Google App Engine中如何修改你的数据模型
更新模型的架构
定义数据类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: