DataNucleusの:トランザクションをコミットするときにはどうすれば自動的にアクションを実行するのですか?

StackOverflow https://stackoverflow.com/questions/763792

質問

以下永続構造とDataNucleusのを使用してアプリケーションを有する検討 どのようにして、自動的に適切な値とそれらの属性を記入しないときオブジェクト:

あなたは2つのの作成の(日付)などの属性とのLASTUPDATE の(日付)を持つクラスを持っていますこのクラスのコミットされようとしていますか? 適切な値オブジェクトがデータベースに挿入され、現在の時刻に、両方の、の作成 LASTUPDATE の設定だけ更新されます。のLASTUPDATE のそれは持っています変更します。

役に立ちましたか?

解決

私は今、自分自身をそれを考え出します。

あなたは InstanceLifecycleListener ...

public class BasicEntityLifecycleListener implements StoreLifecycleListener {

    public void postStore(InstanceLifecycleEvent evt) {
    }

    public void preStore(InstanceLifecycleEvent evt) {
        if((PersistenceCapable)evt.getSource() instanceof BasicEntity) {
            BasicEntity obj = (BasicEntity)evt.getSource();
            Date now = new Date();
            if(JDOHelper.isNew(obj))
                obj.setCreated(now);
            obj.setLastUpdate(now);
        }
    }
}

と、あなたのPersistenceManager ...

内に登録
PersistenceManager pm = pmf.getPersistenceManager();
pm.addInstanceLifecycleListener(new BasicEntityLifecycleListener(), null);

私は DataNucleusのアクセスPlaftormマニュアルの中に解決策を見つけました私は今まで認められていませんでした。オンラインマニュアルは、私には少し複雑なようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top