3
我最近将文本字段添加到了一个不能为null的实体。我想为它设置一个默认值,以便在添加字段之前存储的所有实体都将填充空字符串。这可能与JDO?如何为appengine上的JDO实体中的字段指定默认值?
我最近将文本字段添加到了一个不能为null的实体。我想为它设置一个默认值,以便在添加字段之前存储的所有实体都将填充空字符串。这可能与JDO?如何为appengine上的JDO实体中的字段指定默认值?
是的,尽管不像您期待的那么平常。
限制
解决办法
代码
void updateNullBarField() {
final Text DEFAULT_BAR = new Text("bar");
PersistenceManagerFactory pmfInstance = JDOHelper
.getPersistenceManagerFactory("transactions-optional");
PersistenceManager pm = pmfInstance.getPersistenceManager();
Query query = pm.newQuery(Foo.class);
@SuppressWarnings("unchecked")
Collection<Foo> foos = pm.detachCopyAll((List<Foo>) query.execute());
for (Foo foo : foos) {
if (foo.bar == null) {
foo.bar = DEFAULT_BAR;
pm.detachCopy(pm.makePersistent(foo));
}
}
}