문제인식
김영한님의 JPA 강의를 듣다가
org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
테스트코드를 짜고 첫 실행을 하는데 Failed to load ApplicationContext for 에러를 만나게 되었다.
Try
Error creating bean with name 'entityManagerFactory’ 라고 적혀있는것을 봐서
엔티티매니저를 얘가 못찾고 있는것 같았다.
엔티티매니저가 있는 레파지토리로 가서 혹시 어노테이션이 빠지진 않았는지 살펴보았다.
→ 빠진곳은 없었다..
메인은 잘 돌아가는지 돌려보았다.
메인부터 돌아가지 않고 있었다.

이런 에러코드를 보아 하이버네이트 주입넣는 부분에서 잘못된것 같다.
yml파일이랑 그래들 파일을 살펴보았다.
yml파일에서 data-jpa인데 datajpa로 되어있었다.

혹시나 하는 마음에 바꿔주고 다시 돌려보았다.
→ 그래도 안돌아간다. 이것의 문제는 아닌것 같다.

버전 문제인가 싶어서 3.0인 버전을 낮춰봤다.
→그래도 안된다.
다시 에러코드를 꼼꼼히 읽어보자

하이버네이트가 설정되지 않았을때 널이 들어갈 수 없다는 소리니까..
하이버네이트가 설정이 안됐구나..!
그런데 yml 가보니까 하이버네이트가 있었다.
다시 천천히 살펴보니 저번에 @Entity 어노테이션의 임포트를 잘못해서 에러가 났었던 생각이 났다.
javax로 되어있던 @Entity어노테이션을import org.hibernate.annotations.Entity; 로 바꿔어 임포트 해줬다.
→그래도 안된다.. 이것 때문도 아닌것 같다..
프로퍼티스면 될것 같은데 yml이라서 안되는거 아닌가…?
전에도 yml 안됐었는데…

yml에 하이버네이트 잘 있는데…
다시 에러코드를 천천히 읽어보자..

Connection is broken
커넥션이 꺠졌다…
커넥션이라고 하면.. 영속성컨텍스트 문제인것 같은데…
트랜젝셔널 안달아줬나..? 아닌데.. 달아줬는데...
하고 고민을 하다가 다른 팀원분에게 물어서 겨우 문제를 해결할 수 있었다.
문제해결
문제는 생각보다 간단했다.
H2 디비가 연결되어 있지 않아서 생기는 문제였다.
영한님은 터미널로 H2에 접근했지만 나는 실행할 때 바로 H2도 같이 실행되는 줄 알았다.
따라서 내가 생각한 것 처럼 실행할 때 바로 h2가 실행되게 하려면 다음과 같이 설정해주어야 한다.

그리고

이 URL은 h2 데이터베이스를 터미널로 실행시키겠다는 URL이다.
url: jdbc:h2:mem:db;MODE=MYSQL;
로 바꿔줬더니 해결되었다..!