인프런 커뮤니티 질문&답변

초보자님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

34강. JPA 연관관계에 대한 추가적인 기능들

34강 postman에서 send 하고 status=200 -> mysql에서 조회가 안되요

작성

·

148

0

포스트맨에서 등록성공후 Mysql에서 person, address 테이블 확인하면 데이타가 없거든요.

근데 Mysql 팝업메뉴에서 auto-commit 을 선택하면 갱신되서 데이타 보여요.

Libraryapp 테스트할때도 UI화면에서 CUD하면 Mysql에서

바로 안보이고 auto-commit을 해줘야 갱신이 되드라고요.

@Transactional 에서 commit 하는건지요?

맞다면 왜 mysql에서 commit을 따로 해줘야 할까요..

제가 mysql 툴을 안써봐서 문의드려요^^

34.png

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 정현님! 🙂 질문 주셔서 감사합니다.

질문 주신 내용에 대해 하나씩 답변 드려 볼게요!

 

[1. @Transactional 에서 commit 하는건지요?]

네 맞습니다. @Transactional 이 적혀 있는 함수가 (외부 클래스를 통해) 실행되고, 함수의 코드가 모두 끝나게 되고 Exception이 나오지 않았을 때 commit이 이루어집니다.

 

[2. 왜 mysql에서 commit을 따로 해줘야 할까요?]

우선 어떤 프로그램을 통해 mysql에 접근하고 계신지 확인이 필요할 것 같습니다!

만약 mysql에 접근하기 위한 프로그램이 자동으로 '트랜잭션'을 시작하고 있다면, commit이나 rollback을 하기 전까지 다른 트랜잭션 (ex. 우리의 API) 에서 변경한 내용을 확인하지 못할 수도 있습니다.

다만, 일반적으로는 mysql에 접근하기 위한 프로그램에서 단순히 조회를 할 때 '트랜잭션'을 하지는 않기에 굳이 auto-commit이나 별도의 commit을 하지 않고도 업데이트된 내용을 잘 확인할 수 있어요! CLI를 통해 접속하는 것도 마찬가지죠.

 

만약 지속적으로 commit을 하셔야 하는게 불편하시면 mysql에 접속하는 도구를 바꿔보셔도 좋을 것 같습니다. 답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏

초보자님의 프로필 이미지
초보자
질문자

안녕하세요? 답변 감사합니다!

말씀하신데로 Mysql CLI에서는 정상처리되네요.

참고로 Mysql CLI은 콘솔화면이라 다소 불편하여 인텔리제이 plugins에 Database Navigator 설치하고 Mysql UI화면을 사용하고 있거든요.

툴문제는 맞는듯하네요.

자세한 설명 감사합니다!!

 

 

 

최태현님의 프로필 이미지
최태현
지식공유자

아하! Database Navigator를 사용하셨군요! 저도 예전에 한 번정도 해당 툴을 사용해본 적이 있는데, 무언가 호환이 잘 되지 않아서 다른 도구를 사용하게 되었습니다! 🥺

만약 유료 IntelliJ가 아닌 다른 GUI 도구를 찾으신다면, MySQL Workbench를 무료로 사용하실 수 있을거에요!

감사합니다!! 🙏

초보자님의 프로필 이미지
초보자
질문자

알려주신데로 MySQL Workbench에서 하니까 잘 되네요!!

도움 말씀 정말 감사합니다^^