Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在appengine上为JDO实体中的字段指定默认值?_Java_Google App Engine_Jdo - Fatal编程技术网

Java 如何在appengine上为JDO实体中的字段指定默认值?

Java 如何在appengine上为JDO实体中的字段指定默认值?,java,google-app-engine,jdo,Java,Google App Engine,Jdo,我最近在我的一个实体中添加了不能为null的文本字段。我想为它设置一个默认值,这样在添加字段之前存储的所有实体都将填充一个空字符串。这在JDO中是可能的吗?是的,尽管不像您预期的那么简单 限制 void updateNullBarField() { final Text DEFAULT_BAR = new Text("bar"); PersistenceManagerFactory pmfInstance = JDOHelper .getPersistenceManagerFa

我最近在我的一个实体中添加了不能为null的文本字段。我想为它设置一个默认值,这样在添加字段之前存储的所有实体都将填充一个空字符串。这在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));
    }
  }
}
  • 威尔, 除非您将其作为任务运行,其中 如果是这样的话
  • 没有比这更聪明的方法了 之后需要更新的实体 你
  • 解决办法

    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));
        }
      }
    }
    
  • 你会想调查这件事的 到 得到一个可以 用超过10分钟完成 挂钟时间
  • 没有人知道 代码

    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));
        }
      }
    }
    
    void updateNullBarField(){
    最终文本默认值_栏=新文本(“栏”);
    PersistenceManagerFactory pmfInstance=JDOHelper
    .getPersistenceManagerFactory(“事务可选”);
    PersistenceManager pm=pmfInstance.getPersistenceManager();
    Query=pm.newQuery(Foo.class);
    @抑制警告(“未选中”)
    Collection foos=pm.detachCopyAll((List)query.execute());
    for(Foo-Foo:foos){
    如果(foo.bar==null){
    foo.bar=默认的工具栏;
    pm.detachCopy(pm.makePersistent(foo));
    }
    }
    }