소개
게시글
질문&답변
영한님 롤백과 관련해서 질문이있습니다.
영한님 말씀대로 제가 중간에 JPQL로 조회 쿼리를 날리고 있었네요; 그래서 쓰기지연에 있던 insert 쿼리가 날라가고 그다음에 조회 쿼리가 실행되고 있었습니다. 실습하면서 하나하나 다시 따져보면서 하겠습니다 😂 답변 모두 감사합니다!
- 0
- 6
- 256
질문&답변
영한님 롤백과 관련해서 질문이있습니다.
추가로 실습해보다가 질문이 있습니다..! 기본키 매핑 전략을 AUTO로 변경하고 다시 회원가입 테스트를 작성해보는 중, 한 트랜잭션 안에서 두명의 회원정보를 저장할 시 쿼리가 어떻게 발생하는지 궁금해서 아래와 같이 코드를 짜봤는데요, 예상으론 call next value for hibernate_sequence 로그가 찍히고 말줄 알았는데, 첫번째 회원가입 로직 수행 수 insert 쿼리가 나가더라고요. 두번째 회원가입의 경우에는 insert 쿼리가 찍히지 않았습니다. insert 쿼리에 경우, 쓰기지연 기능으로 트랜잭션이 다 수행되고 커밋되는 시점에(커밋된다는 가정하에) 2개가 날아가야하지 않나? 라는 생각이 드는데요, 이 부분은 트랜잭션과 관련이 있는 부분일까요? 아니면 이도 기본키 매핑과 관련이 있는 것인가요? @Transactional @Test void 회원가입() { // given Member member = new Member(); member.setUsername("kim"); Member member2 = new Member(); member2.setUsername("lee"); // when Long savedId = memberService.join(member); memberService.join(member2); // then assertThat(member).isEqualTo(memberRepository.find(savedId)); } (사진) (사진)
- 0
- 6
- 256
질문&답변
영한님 롤백과 관련해서 질문이있습니다.
영한님 감사합니다!말씀해주신대로 확인해보니 제가 기본키 매핑 전략을 IDENTITY로 설정해놨더라고요; AUTO로 바꾸니 Insert 쿼리가 발생하지 않네요! 추가로 JPQL로 insert를 날려봤는데 말씀하신대로 AUTO 기본키 매핑 전략이지만insert 쿼리가 찍힙니다. 감사합니다. (기본기부터 다시 공부해야겠네요 😂)
- 0
- 6
- 256