0

JDO アノテーション付きの Java クラスを含む Web プロジェクトがあります。私のデータベースは MongoDB です。プロジェクトで datanucleus を使用しています。Java オブジェクトをデータベースに永続化するには、次のコードを使用します。

    ListAcc list = new ListAcc();
    list.name = "created";
    pm.makePersistent(list);

次に、次のコードでドキュメントを取得します。

    ListAcc l = pm.getObjectById(ListAcc.class,"507675823004b91181edc746");

その時点まで、すべてが機能しています。ここで、ドキュメントを更新したいと思います。それを行うために、私はこのコードを使用します:

    Transaction tx = pm.currentTransaction();
    tx.begin();
    try {
      ListAcc l = pm.getObjectById(ListAcc.class,"507675823004b91181edc746");
      l.name = "changing";
      tx.commit();
    } catch(Exception e) {
      tx.rollback();
    }

ただし、この操作ではドキュメントが更新されません。

ドキュメントの更新を手伝ってもらえますか?

どうもありがとう

4

1 に答える 1

1

そのクラスのPUBLICフィールドを更新するということですか? 1 つ目は、パブリック フィールドを使用するプログラミングの不適切な方法です。2 つ目は、永続化コンテキストでそれを行いたい場合は、これらのパブリック フィールドを更新するクラスに @PersistenceAware としてアノテーションを付ける必要があります (または、クラスでセッター メソッドを使用するだけです)。そのすべてはDNドキュメントにあります

于 2012-10-11T09:35:53.760 に答える