#13 spring transaction : propagation - outerTxOn

This commit is contained in:
haerong22
2022-07-23 00:21:13 +09:00
parent b5f2a519ea
commit 1ef1e16952
3 changed files with 39 additions and 3 deletions

View File

@@ -15,7 +15,7 @@ public class LogRepository {
private final EntityManager em;
// @Transactional
@Transactional
public void save(Log logMessage) {
log.info("log 저장");
em.persist(logMessage);

View File

@@ -15,7 +15,7 @@ public class MemberRepository {
private final EntityManager em;
// @Transactional
@Transactional
public void save(Member member) {
log.info("member 저장");
em.persist(member);

View File

@@ -47,7 +47,7 @@ class MemberServiceTest {
@Test
void outerTxOff_fail() {
//given
String username = "로그예외_outerTxOff_success";
String username = "로그예외_outerTxOff_fail";
//when
assertThrows(RuntimeException.class, () -> memberService.joinV1(username));
@@ -74,4 +74,40 @@ class MemberServiceTest {
assertTrue(memberRepository.find(username).isPresent());
assertTrue(logRepository.find(username).isPresent());
}
/**
* memberService @Transactional:ON
* memberRepository @Transactional:ON
* logRepository @Transactional:ON
*/
@Test
void outerTxOn_success() {
//given
String username = "outerTxOn_success";
//when
memberService.joinV1(username);
//then
assertTrue(memberRepository.find(username).isPresent());
assertTrue(logRepository.find(username).isPresent());
}
/**
* memberService @Transactional:ON
* memberRepository @Transactional:ON
* logRepository @Transactional:ON Exception
*/
@Test
void outerTxON_fail() {
//given
String username = "로그예외_outerTxON_fail";
//when
assertThrows(RuntimeException.class, () -> memberService.joinV1(username));
//then
assertTrue(memberRepository.find(username).isEmpty());
assertTrue(logRepository.find(username).isEmpty());
}
}