@Rollback(false) 이 되지 않아요
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
'예제 도메인 모델과 동작확인' 테스트 과정에서 @Rollback(false)가 동작하지 않아 h2 데이터베이스에 테이블이 생성되지 않습니다.
application.yml
spring:
datasouce:
url: jdbc:h2:tcp://localhost/~/datajpa
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
logging.level:
org.hibernate.SQL: debug
# org.hibernate.type: trace
MemberTest.java
@SpringBootTest
@Transactional
@Rollback(value = false)
class MemberTest {
@PersistenceContext
EntityManager em;
@Test
public void testEntity(){
Team teamA = new Team("teamA");
Team teamB = new Team("teamB");
em.persist(teamA);
em.persist(teamB);
Member member1 = new Member("member1", 10, teamA);
Member member2 = new Member("member2", 20, teamA);
Member member3 = new Member("member3", 30, teamB);
Member member4 = new Member("member4", 40, teamB);
em.persist(member1);
em.persist(member2);
em.persist(member3);
em.persist(member4);
em.flush();
em.clear();
List<Member> members = em.createQuery("select m from Member m", Member.class).getResultList();
for (Member member : members) {
System.out.println("member = " + member);
System.out.println("member -> " + member.getTeam());
}
}
}
답변 1
0
안녕하세요. 김재원님, 공식 서포터즈 y2gcoder입니다.
혹시 해당 테스트 코드 실행 시 다시 애플리케이션을 실행하거나, 테스트코드를 실행하지 않은 상태이십니까?
실행중인 h2 DB에서 application.yml 로 접속하셨습니까?
위의 두 가지를 확인해보시겠습니까?
spring:
datasouce:
url: jdbc:h2:tcp://localhost/~/datajpa
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
logging.level:
org.hibernate.SQL: debug
# org.hibernate.type: trace위의 설정에서 spring.jpa.hibernate.ddl-auto: create 으로 해주면 테스트 코드를 실행하거나, 애플리케이션을 실행할 때마다 spring.datasource.url 에 있는 db 테이블들을 지웠다가 다시 생성하기 때문입니다!
감사합니다.
1
안녕하세요.
테스트 코드를 실행 했습니다.
테스트 코드 결과는 정상으로 나타납니다.
H2는 실행되고 있습니다.
로그 상에서 db 테이블들을 지웠다가 다시 생성되는 쿼리가 확인 됩니다.
위 내용들을 다시 확인 했습니다. 그래서 아래와 같은 조치들을 해봤습니다.
application.yml 설정 재확인 결과 이상 없음
인텔리제이 롬복 설정 재확인 결과 이상 없음
Insert문 로그로 재확인 이상 없음
그러나 문제를 해결하지 못했습니다. 다음으로 조치해볼 수 있는 것들이 뭐가 있을까요?
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
69
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
107
3
MemberRepository 구현체
0
57
1
pdf 표현 질문드립니다.
0
62
1
로그가 남지 않는 문제.
0
81
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
70
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
72
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
91
2
Sort 인터페이스는 잘 사용 안하나요?
0
52
1
스캔대상 질문드립니다.
0
46
1
하이버네이트6에서의 최적화에 이은 질문
0
85
1
save() vs saveAndFlush DB 통신 횟수
0
53
1
순수 JPA 리포지토리 코드 수정부분
0
86
2
bulk연산 후 flush하는 이유를 모르겠어요
0
152
3
bulk insert 질문입니다.
0
178
2
교만했던 것 같아요.
0
147
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
147
2
동적 테이블에 대한 질문
0
85
1
영속성 전이와 연관관계
0
130
2
강의 10:25 질문
0
74
1
단건 update 질문
0
95
2
엔티티 와 도메인의 경계
0
127
1
UsernameOnlyDto 타입 type mismatch 오류
0
119
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
136
1





