{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2020-11-02--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"d43db8a8-cde6-5e60-9c96-68ee3d311cc3","html":"<table>\n<thead>\n<tr>\n<th>-</th>\n<th>Exception</th>\n<th>RuntimeException</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>정의</td>\n<td>Runtime Exception을 제외한 모든 Exception</td>\n<td>Runtime Exception 하위 Exception</td>\n</tr>\n<tr>\n<td>예외처리</td>\n<td>명시적인 예외처리 필요</td>\n<td>명시적인 예외처리를 강제하지 않음</td>\n</tr>\n<tr>\n<td>시점</td>\n<td>Compile Time</td>\n<td>Runtime</td>\n</tr>\n<tr>\n<td>트랜젝션 처리</td>\n<td>non-rollback</td>\n<td>rollback</td>\n</tr>\n</tbody>\n</table>\n<h4>#. @Transactional</h4>\n<ul>\n<li>CheckedException 의 경우 롤백이 되지 않고, RuntimeException 의 경우 롤백이 된다.</li>\n</ul>\n<h4>#. rollbackFor 옵션</h4>\n<ul>\n<li>롤백이 되는 클래스 지정 방법</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token comment\">// Exception 예외로 롤백 </span>\n<span class=\"token annotation punctuation\">@Transactional</span><span class=\"token punctuation\">(</span>rollbackFor <span class=\"token operator\">=</span> <span class=\"token class-name\">Exception</span><span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\">// 여러 예외 지정 </span>\n<span class=\"token annotation punctuation\">@Transactional</span><span class=\"token punctuation\">(</span>rollbackFro <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token class-name\">RuntimeException</span><span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">,</span> <span class=\"token class-name\">Exception</span><span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span></code></pre></div>\n<h4>#. noRollbackFor 옵션</h4>\n<ul>\n<li>특정 예외 발생 시 롤백이 되지 않도록 하는 방법</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token annotation punctuation\">@Transactional</span><span class=\"token punctuation\">(</span>noRollbackFor<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token class-name\">IgnoreRollbackException</span><span class=\"token punctuation\">.</span><span class=\"token keyword\">class</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span></code></pre></div>","fields":{"tagSlugs":["/tags/jpa/","/tags/exception/"],"slug":"/history/posts/2020-11-02--001"},"frontmatter":{"title":"예외 발생 시 트랜젝션 처리","tags":["jpa","exception"],"date":"2020-11-02","description":""}}},"pageContext":{"slug":"/history/posts/2020-11-02--001"}},"staticQueryHashes":[]}