H2를 최신 버전(2.1.210)으로 업데이트하니 아래와 같은 에러가 발생했습니다.

1
2
3
4
5
6
7
8
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
...
java.lang.IllegalStateException: Failed to load ApplicationContext

at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
...

일단 임시방편으로 H2 url을 연결하는 곳에 추가적으로 옵션(;MODE=LEGACY)을 넣으면 해결됩니다.

1
url: jdbc:h2:tcp://localhost/~/test;MODE=LEGACY

MODE=LEGACY를 모드를 사용하면 H2 1.X용으로 작성된 응용 프로그램에 대한 일부 호환성 기능이 활성화됩니다. Hibernate ORM에서 H2에 대해서 유효하지 않은 SQL을 생성하기 때문이라고 합니다.

그렇다면.. hibernate ORM에서 H2 방언에 대한 문제를 해결해야 합니다.
현재는 hibernate ORM은 5.6 안정화 버전과 6.0 개발 버전이 있습니다.

Reference