在谷歌应用引擎数据存储区中保留数据

时间:2013-03-05 22:15:50

标签: google-app-engine java-ee google-cloud-datastore

我尝试使用JPA在谷歌应用引擎数据存储区中存储数据,但我遇到了一些麻烦。

我的代码:

try {
        for (int i = 1; i <= 10; i++) {
            Employee emp = new Employee();

            emp.setFirstName("John" + i);
            emp.setLastName("Doe" + i);
            emp.setAge(i);

            em.persist(emp);
            em.refresh(emp);
        }

        em.flush();

    } catch (Exception e) {

        e.printStackTrace();
    } finally {
        em.close();
    }

当我启动它时,会存储数据,但会发生2个错误:

javax.persistence.TransactionRequiredException:此操作需要事务但尚未激活 - &gt; line em.flush();

显示java.lang.NullPointerException     at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3887) - &gt; line em.close();

任何人都知道如何修复它们?

感谢。

1 个答案:

答案 0 :(得分:0)

尝试:

em.getTransaction().begin();
//do all your persist logic
em.getTransaction().commit();

更多信息:https://developers.google.com/appengine/docs/java/datastore/transactions