使用Google AppEngine和Objectify更改“架构”

时间:2012-02-22 04:40:59

标签: google-app-engine google-cloud-datastore objectify

我正在使用Google AppEngine(Java)探索网络开发。我的应用程序有一个非常基本的数据存储要求,非常适合AppEngine的“地图”,如数据存储区。

基本单元是一个具有成员变量的类,每个事务将从数据库中写入或读取(这是因为它与Android应用程序交互)。

我正在考虑使用Objectify进行接口。

我的问题是:如果我稍后更改基类中的大小(变量数)会怎样?我知道AppEngine没有输入,但如果某些变量可用于某些键而不是其他键,Objectify会导致任何问题吗?

2 个答案:

答案 0 :(得分:2)

手册中对此进行了广泛讨论:

http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Migrating_Schemas

简短的回答是您可以随意添加和删除字段。此外,还有更复杂的数据转换设施。

答案 1 :(得分:0)

如果您决定稍后从Objectify框架转移到低级API,则不会出现问题。应用程序引擎的数据存储区已键入,但不是所有Java类型。我不知道你是否能够在没有阅读和重写所有数据的情况下让JDO或JPA工作,但我想你可能会这样做。

Objectify 4的存储Map的方法非常好 - 将属性存储为“fieldname-mapkey”