작성
·
148
0
답변 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화면을 사용하고 있거든요.
툴문제는 맞는듯하네요.
자세한 설명 감사합니다!!