본문 바로가기
강의 정리/스프링 부트와 JPA 활용 1

1. 환경설정

by 이석준석이 2020. 12. 25.

1. JPA 환경설정

 

spring.jpa.hibernate.ddl-auto

  • create : 어플리케이션 실행 시점에 내가 가지고 있는 엔터티를 지우고 재생성한다.

spring.jpa..properties.hibernate

  • show_sql : System.out.println 형식으로 쿼리문을 출력해준다. <- 비권장 ( 아래의 logging.level.org.hibernate.SQL 사용 권장)
  • format_sql : 쿼리문을 포매팅하여 출력해준다.

logging.level.org.hibernate.SQL

  • debug : 로깅 형태로 출력해준다.

logging.level.org.hibernate.type

  • trace : 쿼리 파라미터를 로깅 형태로 출력해준다.

2. Test 코드에 있는 @Transactional

 

@Test
@Transactional
void testMember() {
    // given
    Member member = new Member();
    member.setUsername("memberA");

    // when
    Long savedId = memberRepository.save(member);
    Member findMember = memberRepository.find(savedId);

    // then
    assertEquals(findMember.getId(), member.getId());
    assertEquals(findMember.getUsername(), member.getUsername());
}

 

위와 같은 코드 (테스트코드에 @Transactional) 를 실행한 뒤, 데이터베이스에 가면 member 가 저장되어 있지 않다.

  • 테스트코드에 @Transactional 을 사용하여 테스트를 진행하면, 테스트가 끝난 뒤에 롤백된다.

롤백을 수행하지 않으려면

  • @Rollback(value=false) 를 사용한다.
@Test
@Transactional
@Rollback(value = false)
void test() {
...
}

 

'강의 정리 > 스프링 부트와 JPA 활용 1' 카테고리의 다른 글

3. 변경 감지와 병합  (0) 2021.01.05
2. 엔터티 설계시 주의점  (0) 2020.12.26