2

我正在尝试更新我的实体类,但我得到:

javax.persistence.PersistenceException: Only select and delete statements are supported.

当我不使用 Google 应用引擎时,这个确切的代码运行良好。我的代码是:

    em.getTransaction().begin();

    Query query =
            em.createQuery("UPDATE Profile p" +
                           "SET p.age = 1 " +
                           "WHERE p.email = :email" );

    query.setParameter("newPoint", point);
    query.setParameter("email", email);

    int updateCount = query.executeUpdate();        
    em.getTransaction().commit();

所以我问我如何更新实体查询?

4

1 回答 1

2

由于 GAE 数据存储不支持直接更新数据存储中字段的查询,因此您同样无法通过 JPA API 执行此操作。由于 JPA 从未为其他类型的数据存储设计,因此您将看到不适用的功能。

通过查询检索对象,并手动更新它们。

当 GAE 提供开箱即用的完整 map-reduce 时,类似的东西将是可行的支持

于 2012-04-26T08:54:09.007 回答