{"id":4449,"date":"2024-03-14T01:29:29","date_gmt":"2024-03-14T01:29:29","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/"},"modified":"2025-07-31T08:06:28","modified_gmt":"2025-07-31T08:06:28","slug":"what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/","title":{"rendered":"Spring Transaction Management Guide"},"content":{"rendered":"<p>In Spring, transaction submission and rollback are achieved through either programmatic transaction management or declarative transaction management.<\/p>\n<ol>\n<li>Programmatic transaction management involves handling the commit and rollback of transactions in the code itself, usually done using the TransactionTemplate class. Here is an example code snippet:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Autowired<\/span>\r\n<span class=\"hljs-keyword\">private<\/span> PlatformTransactionManager transactionManager;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">doSomething<\/span><span class=\"hljs-params\">()<\/span> {\r\n    <span class=\"hljs-type\">TransactionTemplate<\/span> <span class=\"hljs-variable\">transactionTemplate<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">TransactionTemplate<\/span>(transactionManager);\r\n    transactionTemplate.execute(status -&gt; {\r\n        <span class=\"hljs-comment\">\/\/ \u6267\u884c\u4e1a\u52a1\u903b\u8f91<\/span>\r\n        <span class=\"hljs-comment\">\/\/ \u5982\u679c\u9700\u8981\u56de\u6eda\uff0c\u53ef\u4ee5\u901a\u8fc7status.setRollbackOnly()\u6765\u8bbe\u7f6e\u56de\u6eda<\/span>\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\r\n    });\r\n}\r\n<\/code><\/pre>\n<ol>\n<li>Declarative transaction management:<br \/>\nBy using the @Transactional annotation or XML configuration to declare transaction attributes, Spring will begin a transaction before the method is executed, and automatically commit or rollback the transaction based on the result of the method execution after it is done. An example code is shown below:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Transactional<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">doSomething<\/span><span class=\"hljs-params\">()<\/span> {\r\n    <span class=\"hljs-comment\">\/\/ \u6267\u884c\u4e1a\u52a1\u903b\u8f91<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In the above two methods, if the method executes normally, the transaction will be automatically committed; if an exception is thrown in the method, the transaction will be automatically rolled back. Additionally, programmatic transaction management allows manual setting of the transaction rollback status.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Spring, transaction submission and rollback are achieved through either programmatic transaction management or declarative transaction management. Programmatic transaction management involves handling the commit and rollback of transactions in the code itself, usually done using the TransactionTemplate class. Here is an example code snippet: @Autowired private PlatformTransactionManager transactionManager; public void doSomething() { TransactionTemplate transactionTemplate = [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[3456,4025,4017,4024,4023],"class_list":["post-4449","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-declarative-transactions","tag-rollback-methods","tag-spring-transaction","tag-transaction-commit","tag-transactiontemplate"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Transaction Management Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn programmatic &amp; declarative Spring transaction methods, including commit\/rollback techniques with TransactionTemplate.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Transaction Management Guide\" \/>\n<meta property=\"og:description\" content=\"Learn programmatic &amp; declarative Spring transaction methods, including commit\/rollback techniques with TransactionTemplate.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T01:29:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T08:06:28+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"Spring Transaction Management Guide\",\"datePublished\":\"2024-03-14T01:29:29+00:00\",\"dateModified\":\"2025-07-31T08:06:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\"},\"wordCount\":141,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Declarative transactions\",\"Rollback methods\",\"Spring Transaction\",\"Transaction commit\",\"TransactionTemplate\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\",\"name\":\"Spring Transaction Management Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T01:29:29+00:00\",\"dateModified\":\"2025-07-31T08:06:28+00:00\",\"description\":\"Learn programmatic & declarative Spring transaction methods, including commit\/rollback techniques with TransactionTemplate.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Transaction Management Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Spring Transaction Management Guide - Blog - Silicon Cloud","description":"Learn programmatic & declarative Spring transaction methods, including commit\/rollback techniques with TransactionTemplate.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/","og_locale":"en_US","og_type":"article","og_title":"Spring Transaction Management Guide","og_description":"Learn programmatic & declarative Spring transaction methods, including commit\/rollback techniques with TransactionTemplate.","og_url":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T01:29:29+00:00","article_modified_time":"2025-07-31T08:06:28+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"Spring Transaction Management Guide","datePublished":"2024-03-14T01:29:29+00:00","dateModified":"2025-07-31T08:06:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/"},"wordCount":141,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Declarative transactions","Rollback methods","Spring Transaction","Transaction commit","TransactionTemplate"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/","url":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/","name":"Spring Transaction Management Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T01:29:29+00:00","dateModified":"2025-07-31T08:06:28+00:00","description":"Learn programmatic & declarative Spring transaction methods, including commit\/rollback techniques with TransactionTemplate.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-are-the-methods-for-committing-and-rolling-back-transactions-in-spring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Spring Transaction Management Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=4449"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4449\/revisions"}],"predecessor-version":[{"id":149113,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4449\/revisions\/149113"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=4449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=4449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=4449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}