0

我尝试使用 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:此操作需要一个事务但它不活动 -> 行 em.flush();

java.lang.NullPointerException at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3887) -> line em.close();

有谁知道如何解决它们?

谢谢。

4

1 回答 1

0

尝试:

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

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

于 2013-03-05T22:24:00.510 回答