【问题标题】:Update query using JPA and Google App Engine使用 JPA 和 Google App Engine 更新查询
【发布时间】:2012-04-26 08:52:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: google-app-engine jpa


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    相关资源
    最近更新 更多