【发布时间】:2012-02-13 18:58:39
【问题描述】:
我的应用引擎数据存储中有一个实体。这个实体实际上只有一个实例。我可以在我的管理控制台中看到它。是否可以通过管理控制台向实体添加新属性(可能使用 gql)?
现在它看起来像:
Entity: Foo
Attributes: mName, mAge, mScore
我想为这个实体添加一个新的布尔属性,例如“mGraduated”或类似的东西。
在最坏的情况下,我可以编写一些代码来删除实体,然后保存一个新实体,但我只是想知道。
谢谢
-------- 更新 ---------
尝试将新属性添加到我的类(使用 java),并在从数据存储加载时得到以下信息:
java.lang.NullPointerException:
Datastore entity with kind Foo and key Foo(\"Foo\") has a null property named mGraduated.
This property is mapped to com.me.types.Foo.mGraduated, which cannot accept null values.
这是我的实体类的样子,我只是添加了新属性(mGraduated),然后部署,然后尝试从数据存储区加载单个实体(产生上述异常):
@PersistenceCapable
public class Foo
{
@PrimaryKey
private String k;
/** Some old attributes, look like the following. */
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value="true")
private String mName;
...
/** Tried adding the new one. */
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value="true")
private boolean mGraduated;
【问题讨论】:
标签: google-app-engine jdo