본문 바로가기
Trouble Shooting/H2 Database

[H2 Database / Database] 스프링 부트 개발 시 ddl 외래키 참조로 인해 발생하는 문제 및 해결방안 ① (org.hibernate.tool.schema.internal.exceptionhandlerloggedimpl handleexception warn: generationtarget encountered exception acce..

by drCode 2023. 2. 15.
728x90
반응형

 

김영한(우아한형제들 기술이사)님의 JPA 강의를 듣다가 발생한 문제가 있다.

 

예제를 그대로 따라하다가

 

org.hibernate.tool.schema.internal.exceptionhandlerloggedimpl handleexception warn: generationtarget encountered exception accepting command : error executing ddl

 

와 같은 에러가 발생했다.

 

정확히는 경고문이지만, 프로그램이 원하는 대로 실행되지 않은 경우가 발생한다.

 

프로그램의 생명은 정확히 데이터를 처리할 수 있는 것이거늘...

 

그래서 이 오류를 고쳐야 한다.

 

이 오류를 고치기 위해서는 H2 Console의 버전을 바꿔줘야 한다.

 

만약 버전이 1.4.200, 버전이 200대라면 필히 고쳐주어야 실행될 수 있다.

 

김영한님께서 해당 문제에 대한 답변을 주셨다.

 

https://www.inflearn.com/questions/17219/%EA%B8%B0%EC%A1%B4-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%B4-%EC%82%AD%EC%A0%9C%EB%90%98%EC%A7%80-%EC%95%8A%EB%8A%94-%EB%AC%B8%EC%A0%9C

 

기존 테이블이 삭제되지 않는 문제.. - 인프런 | 질문 & 답변

안녕하세요 영한님 강좌를 보며 예제를 따라하던중 제 프로젝트가 영한님과 다르게 실행되는것 같아 질문을 올립니다 hibernate.hbm2ddl.auto = create 인 상황에서 프로젝트를 실행하면 기존에 생성되

www.inflearn.com

 

1.4.200 버전 이상이면 안될 수도 있다고..

 

아래의 주소에서 1.4.199 버전을 다운 받고 설치한다.

 

http://www.h2database.com/html/download-archive.html

 

Archive Downloads

 

www.h2database.com

 

그러면 이제 바꾼 버전을 확인해줘야 하는데,

 

버전을 확인하려면 로그인을 해야한다.

 

그런데, 로그인 하려는데 기존 스키마 로그인이 되질 않는다.

 

H2 Console 로그인 안되는 현상

 

 

② File corrupted while reading record: null. Possible solution: use the recovery tool [90030-199] 90030/90030

 

https://www.inflearn.com/questions/409647/h2-db-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4

 

H2 DB 연결이 안됩니다. - 인프런 | 질문 & 답변

h2 최신 버전에서 발생하는 쿼리 문제때문에 기존에 있었던 h2를 삭제하고, 다시 설치를 진행했는데.. 아래처럼 90030 에러가 뜨면서 연결이 안됩니다. <?xml version='1.0' encoding='UTF-8'?><persistence vers...

www.inflearn.com

해결제안은 위의 링크에서 확인할 수 있다.

 

이런 문제가 발생했을 때, 스키마를 다시 만들어줘야한다.

 

Create a new Database

 

Database path 는 새롭게 만들 DB 스키마를 어디에 저장할지 정하는 것이다.

 

필자는 C:\Users\윈도우사용자ID\jpaStudy2 로 만들었다.

 

./ 위치 앞에 절대경로로 해줘야 생성할 때 오류가 안난다.

 

이후에 비밀번호를 입력하는데, 비밀번호 입력하는게 귀찮다면 아래의 게시글을 확인해보자.

https://drcode-devblog.tistory.com/422

 

[H2 Database / Database] 새로운 Repository 생성 후 귀찮아서 비밀번호 없애고 싶을 때

Create a new database 클릭 이렇게 뜨는 데 대충 비번 적고 create 하면 repository 명이 해당 디렉토리 내에 중복되지만 않으면 그냥 생성된다. 실행하면 위처럼 뜨는데 새로 만든 repository 명을 입력하고 I

drcode-devblog.tistory.com

 

그래서, 다시 접속을 시도한다.

 

H2 Console 접속 시도

 

이제 설치한 버전에 맞게 제대로 설치가 되었는지 확인하는 쿼리를 사용해보자..

 

SELECT H2VERSION() FROM DUAL;

 

실행하면, 아래와 같이 1.4.199 버전이 찍힌다.

 

H2 Console 1.4.199

다시 프로젝트를 켜서 WAS를 실행시키면 

 

전처럼 

 

org.hibernate.tool.schema.internal.exceptionhandlerloggedimpl handleexception warn: generationtarget encountered exception accepting command : error executing ddl

 

와 같은 에러를 마주하지 않을 것이다.

728x90
반응형

댓글