2012-03-07 7 views
12

私は、データベースへの更新機能を持つサービスレイヤーのメソッドを持っています。春のフレームワークでのデフォルト分離レベル

@Transactional(propagation = Propagation.REQUIRES_NEW) 
public void update(final Object obj){ 
// 
    } 

このメソッドの分離レベルは、春のフレームワークで設定されていますか?

私は春に初心者です。ちょうど自分自身をトランザクションで快適にしたいと思っていました。

いくつかのベストプラクティスを教えてください。デッドロックを回避し、同じユーザーが異なるブラウザから自分のレコードを更新しようとするのを防ぐために、隔離レベルを設定する方法があります。

答えて

7

docs (Isolation.DEFAULT)によれば、基本的なデータストアのデフォルトの分離レベルを使用し

を使用しています。

あなたが@Transactional注釈を使用しているように、私は正しいだこと:例えば、そこ

@Transactional(propagation=Propagation.REQUIRES_NEW, isolation=Isolation.SERIALIZABLE) 
+0

を分離レベルを設定していますが、本当にREQUIRES_NEWとSERIALIZABLEを必要とすることを確認します。これらは、通常、自分のシーケンスを管理するために必要なものです。アップデートのデフォルトは正常です。 – AngerClown

+0

@ beny23なので、私のアプリケーションでは、oracleデータベースによって設定されたデフォルトの分離レベルが使用されます。正しい? – challenge

+1

@challengeはい、私はREAD COMMITTEDと信じています... – beny23

関連する問題