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