ローカルトランザクション

Savepointを使って、RequiredsNewを実装すると、
トランザクション分離レベル次第では、
Connectionを複数取った場合と、読み取れるデータに違いがあるんじゃないかと…。


極当たり前の事に気付いてなかったり…。あぅあ…。


要は、こんな感じで処理が遷移したりすると…。


Required > INSERT > RequiresNew > UPDATE


INSERTで、投入したデータをUPDATEで更新できるか?って事です。
恐らく、ダーティリードが可能なトランザクション分離レベルなら、
まぁ、どうあっても可能なんですが…。


Saveを使った実装だと、Connectionを使いまわすからUPDATEで更新できるけど、
Connectionを複数使う実装だと更新出来ない…みたいな事になる訳ですね。


どっちが正しい動作なのか、正直分らなくなってきてしまいました…。


僕の感覚的には、まぁ、どっちでも良くて、両方実装した時に、
設定次第で動作が全然違ってしまうのがマズいかなぁ…と思うのですが、
いかがでしょう…?