김영한(우아한형제들 기술이사)님의 JPA 강의를 듣다가 발생한 문제가 있다.
예제를 그대로 따라하다가
①
org.hibernate.tool.schema.internal.exceptionhandlerloggedimpl handleexception warn: generationtarget encountered exception accepting command : error executing ddl
와 같은 에러가 발생했다.
정확히는 경고문이지만, 프로그램이 원하는 대로 실행되지 않은 경우가 발생한다.
프로그램의 생명은 정확히 데이터를 처리할 수 있는 것이거늘...
그래서 이 오류를 고쳐야 한다.
이 오류를 고치기 위해서는 H2 Console의 버전을 바꿔줘야 한다.
만약 버전이 1.4.200, 버전이 200대라면 필히 고쳐주어야 실행될 수 있다.
김영한님께서 해당 문제에 대한 답변을 주셨다.
1.4.200 버전 이상이면 안될 수도 있다고..
아래의 주소에서 1.4.199 버전을 다운 받고 설치한다.
http://www.h2database.com/html/download-archive.html
그러면 이제 바꾼 버전을 확인해줘야 하는데,
버전을 확인하려면 로그인을 해야한다.
그런데, 로그인 하려는데 기존 스키마 로그인이 되질 않는다.
② File corrupted while reading record: null. Possible solution: use the recovery tool [90030-199] 90030/90030
해결제안은 위의 링크에서 확인할 수 있다.
이런 문제가 발생했을 때, 스키마를 다시 만들어줘야한다.
Database path 는 새롭게 만들 DB 스키마를 어디에 저장할지 정하는 것이다.
필자는 C:\Users\윈도우사용자ID\jpaStudy2 로 만들었다.
./ 위치 앞에 절대경로로 해줘야 생성할 때 오류가 안난다.
이후에 비밀번호를 입력하는데, 비밀번호 입력하는게 귀찮다면 아래의 게시글을 확인해보자.
https://drcode-devblog.tistory.com/422
그래서, 다시 접속을 시도한다.
이제 설치한 버전에 맞게 제대로 설치가 되었는지 확인하는 쿼리를 사용해보자..
SELECT H2VERSION() FROM DUAL;
실행하면, 아래와 같이 1.4.199 버전이 찍힌다.
다시 프로젝트를 켜서 WAS를 실행시키면
전처럼
org.hibernate.tool.schema.internal.exceptionhandlerloggedimpl handleexception warn: generationtarget encountered exception accepting command : error executing ddl
와 같은 에러를 마주하지 않을 것이다.
댓글