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 に答える