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));
}
}
}