如何将'int'Java模型属性设置为其原始未设置状态而不是在App Engine数据存储区中为零?

时间:2011-06-02 20:08:21

标签: java google-app-engine jdo

表示数据存储区实体的Java模型类的一个属性由int值表示:

int trackedUserId;

此值在应用程序执行过程中设置为特定用户ID。然后在其他点我想将其重置为由空值表示的原始未设置状态。但我能看到重置它的唯一方法是将其设置为零值。在JDO中还有其他方法可以将属性重置为未设置状态吗?

2 个答案:

答案 0 :(得分:4)

int是原始值,因此无法设置为null。根据JDO文档,here

  

如果加载了数据存储区实体   一个对象,没有属性   对于一个对象的字段和   field的类型是可空的   单值类型,该字段设置为   空值。将对象保存回原点时   数据存储区,null属性   在数据存储区中设置为   空值。如果该字段不是   可空值类型,加载实体   没有相应的属性   抛出一个例外。这不会发生   如果实体是从   用于重新创建的相同JDO类   实例,但如果是JDO就会发生   类更改,或实体是否   使用低级API创建   而不是JDO。

如果您正在创建一个具有int字段的新记录,并且未指定值,则它将具有此类字段的Java默认值,即0。

答案 1 :(得分:0)

Integer trackedUserId;
trackedUserId = 1;
//voodoo happens
//so you reset to null
trackedUserId = (Integer) null;

就像你说的那样,它的原始状态由空值表示,所以如果你想让它再次为null,只需将它设置为。