1

不可为空的类型包括 int 和 boolean。我的问题是如何通过架构更改添加这些类型的新变量来更新已经持久的对象。似乎我无法检索这些对象,因为它们现在有一个 null 变量,其中 null 是不允许的!

根据:http ://code.google.com/appengine/docs/java/datastore/dataclasses.html#Object_Fields_and_Entity_Properties

如果该字段不是可为空的值类型,则加载没有相应属性的实体会引发异常。如果实体是从用于重新创建实例的同一 JDO 类创建的,则不会发生这种情况,但如果 JDO 类发生更改,或者如果使用低级 API 而不是 JDO 创建实体,则可能发生这种情况。

这是否意味着不可能将这些类型的变量添加到我的模式中?

4

1 回答 1

3

您可以添加新属性,但它们需要能够接受空值,这意味着两件事:

  1. 您不能添加基元。您必须使用 Integer 和 Boolean 而不是 int 和 boolean。

  2. 您的代码必须准备好属性为空。

于 2010-02-04T01:27:12.047 回答