पर रोलबैक लेनदेन वहाँ एक इकाई हैस्प्रिंग डाटा:</p> <pre><code>@Entity class A { ... @Version int version; } </code></pre> <p><code>A</code> उदाहरणों अद्यतन आशावादी तरीके से लागू: पुन: प्रयास करें
@Transactional(rollbackFor = {StaleStateException.class})
@Retryable(value = {StaleStateException.class})
public void updateA() {
A a = findA();
B b = new B();
// Update "a" somehow
a.update();
// "b" is saved on each retry!
save(b);
}
के रूप में टिप्पणी में कहा गया है, लगता है कि लेन-देन rollbacked नहीं है जब StaleStateException
होता है, इसलिए B
इंस्टेंस प्रत्येक पुनः प्रयास पर सहेजा जाता है।
क्या पुनः प्रयास पर रोलबैक लेनदेन करना संभव है?
वांछित व्यवहार यह है कि b
केवल सफल a
अद्यतन पर सहेजा गया है।