inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

H2 데이터베이스 설치

h2 In-Memory에서 rollback

518

장원익

작성한 질문수 18

0

안녕하세요!

강의를 듣고 강의를 토대로 혼자 이것 저것 해보고 있는 학생입니다!

다름이 아니라 강의와 다르게 h2를 spring boot 가 실행 될 때 메모리에서만 동작하게 하고싶어서

JDBC URL 을 jdbc:h2:mem/test 라고 지정을 했습니다.

그리고 문제는 @Test 어노테이션이 붙은 테스트 클래스에서 발생하였는데요, RepositoryTest 에서 @Transactional과 @Rollback(false) 를 추가시켰음에도 불구하고

spring boot가 돌아가는 8080/h2-console 에서는 자동으로 rollback이 되는데, 혹시 어떤게 문제인지 알 수 있을까요?


// MemberRepositoryTest

@SpringBootTest
@Transactional
@Rollback(false)
class MemberRepositoryTest {

    @Autowired
    private MemberRepository memberRepository;

    @Test
    @DisplayName("이메일로 조회")
    void read() {
        // given
        String email = "dhslrl321@gmail";
        String password = "hwi199";
        String nickname = "dhslrl321";

        Member member = Member.builder()
                .email(email)
                .password(password)
                .nickname(nickname)
                .build();
        memberRepository.save(member);

        // when
        Optional<Member> memberOptional = memberRepository.findByEmail(email);

        // then
        memberOptional.ifPresentOrElse(
                m -> assertEquals(nickname, m.getNickname()),
                Assertions::fail
        );
    }
}

// application.yml
spring:
  h2:
    console:
      path: /h2-console
      enabled: true
      settings:
        web-allow-others: true
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:mem:auth
    username: sa
    password:
  jpa:
    hibernate:
      ddl-auto: create-drop
    properties:
      show_sql: true
      format_sql: true


spring spring-boot java JPA

답변 1

1

김영한

안녕하세요. 원익님

정확이 어떤 상황인지 잘 이해가 되지 않지만 답변을 드려볼게요.

테스트는 시작하고 끝나면 종료되어 버립니다. 따라서 메모리 모드로 동작하면 초기화 되는 것이 맞습니다.

추가로 ddl-auto: create-drop까지 되어 있어서 실행 후 종료되면 테이블을 모두 삭제합니다.

감사합니다.

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

64

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

99

3

MemberRepository 구현체

0

54

1

pdf 표현 질문드립니다.

0

59

1

로그가 남지 않는 문제.

0

78

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

67

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

68

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

87

2

Sort 인터페이스는 잘 사용 안하나요?

0

50

1

스캔대상 질문드립니다.

0

45

1

하이버네이트6에서의 최적화에 이은 질문

0

81

1

save() vs saveAndFlush DB 통신 횟수

0

50

1

순수 JPA 리포지토리 코드 수정부분

0

85

2

bulk연산 후 flush하는 이유를 모르겠어요

0

147

3

bulk insert 질문입니다.

0

174

2

교만했던 것 같아요.

0

142

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

143

2

동적 테이블에 대한 질문

0

84

1

영속성 전이와 연관관계

0

128

2

강의 10:25 질문

0

71

1

단건 update 질문

0

94

2

엔티티 와 도메인의 경계

0

124

1

UsernameOnlyDto 타입 type mismatch 오류

0

114

1

Projection 개념과 데이터 전달과정에 대해 질문 있습니다.

0

131

1