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 |