1

現在、私は JDO を使用して GAE を含む小さなプロジェクトに取り組んでいますが、更新されたデータを永続化するのに問題があるようです - 奇妙なことに、ローカルでは動作しますが、デプロイされたバージョンのアプリでは動作しません。更新は非常に簡単です。

update(Foo newBar) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    Transaction trans = pm.currentTransaction();
    trans.begin();
    Foo bar = pm.getObjectById(Foo.class, "someId");
    bar.baz = newBar.baz;
    pm.makePersistent(bar);
    trans.commit();
    pm.close();
}

ここに欠けているものはありますか?

4

1 に答える 1

2

public フィールドを直接更新しますか? まあ。そのように行った場合、そのフィールドを更新したことを永続化メカニズムが知ることは期待できません。セッターを使用するか、更新クラスを @PersistenceAware として拡張します。

ログを調べると、makePersistent の呼び出しに価値がないなど、多くのことが明らかになります。

于 2013-04-25T06:35:01.240 に答える