김영한님의 JPA 활용 1편을 보다가 나온 오류 해결 과정에 대해 공유합니다.
이미 해당 강의 토론(?) 커뮤니티에도 올렸지만 검색으로 방법을 찾는 분들이 있을거 같아서 여기에도 제가 겪었더 내용들을 올리겠습니다.
강의를 순차적으로 따라하던중 테스트 케이스를 작성하던 중 아래와 같은 오류가 발생했습니다.
엔티티매니저와 관련된 문제가 있다는 것이어서 찾아본 결과 해결 방법은 크게 3가지 였습니다.
1. 단순 오타
질문에도 은근히 보였던 부분인데 단순한 오타문제로 이런 오류가 발생하는 경우가 있었습니다. 해당 강의까지 공부하고 계신거라면 클래스가 그렇게 많지는 않으니 오타도 꼭 점검해보시는 것이 좋습니다.
2. H2 디비문제
해당 강의에서 간단하게 하기위해 H2 디비를 사용합니다. H2 디비 관련해서 크게 세가지 케이스가 있었습니다.
- H2 실행 안함 -> 구조적으로는 잘 모르나 sh 파일을 켜놔야합니다(디비 활성화)
- 버전 문제 -> 버전을 안맞춰서 오류가 생겨 스프링내에서 entitymanager가 제대로 활용되지 못하는 경우가 있었습니다.
- 디비 생성안함 -> 디비가 생성되었는지도 확인해보셔야합니다. 디비 연결까지하면 지정한 위치에 디비 파일이 생겨납니다 강의 그대로 하면 home 위치에 생기기 때문에 디비 파일이 제대로 생겼는지 확인할 필요가 있어보이니다.
3. yml 설정
코드를 보면서 알게된 부분인데 강의는 MVCC=TRUE 로 설정을 하고 있습니다. 아래 영한님이 남겨준 글만 봐도 이를 제거해야한다는걸 알 수 있지만 저는 이미 해결을 하고나서 이 글을 발견했습니다.. 저도 이 문제로 인해 발생한 오류였고 이 부분을 바꿔주니 손쉽게 해결되었습니다.
https://www.inflearn.com/questions/20296/h2-mvcc%EC%97%90-%EA%B4%80%ED%95%B4%EC%84%9C