#13 spring transaction : propagation - outerTxOn
This commit is contained in:
@@ -15,7 +15,7 @@ public class LogRepository {
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
// @Transactional
|
||||
@Transactional
|
||||
public void save(Log logMessage) {
|
||||
log.info("log 저장");
|
||||
em.persist(logMessage);
|
||||
|
||||
@@ -15,7 +15,7 @@ public class MemberRepository {
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
// @Transactional
|
||||
@Transactional
|
||||
public void save(Member member) {
|
||||
log.info("member 저장");
|
||||
em.persist(member);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user