表示数据存储区实体的Java模型类的一个属性由int值表示:
int trackedUserId;
此值在应用程序执行过程中设置为特定用户ID。然后在其他点我想将其重置为由空值表示的原始未设置状态。但我能看到重置它的唯一方法是将其设置为零值。在JDO中还有其他方法可以将属性重置为未设置状态吗?
答案 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,只需将它设置为。