13

これはおそらく重複していることを知っており、皮肉なことに、それについてあちこち読み始める前に、それが何のためにあるのか知っていると思っていました(言うまでもありませんが、それでも言います。間違っているところを修正してください):

これにより、プログラマーは と を使用する必要がなくなりtransaction.begin()ますcommit()
2 つの DAO メソッドを呼び出すメソッドがあり、通常はそれぞれが実際の操作transaction.begintransaction.commit取り囲み、それらを呼び出すと、2 つのトランザクションが発生します (また、前の DAO メソッドもロールバックされると想定されていた場合、ロールバックの問題が発生する可能性があります)。 )。

ただし、@transactionalメソッドで使用すると、これらすべての DAO 呼び出しが単一のサイクルにラップされbegin()ますcommit()。もちろん、DAO を使用する場合はメソッドとメソッドを@Transactional 使用してはいけません。begin()commit()

4

2 に答える 2

0

Spring Transaction のすべてを説明するこのリンクをお勧めします。

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/transaction.html

トランザクションに関する同じ属性 (propagation、rollbackFor など) も表示されるはずです。これらの属性を使用すると、トランザクションの動作が変わる可能性があります。

于 2014-07-29T07:56:02.363 に答える