작성
·
78
2
강사님과 똑같이 했는데 h2에서 member 테이블이 사라지고 결과 값엔 Table "MEMBER" not found; SQL statement
라고 나옵니다. 그래서 테이블 생성을 위해 @Table(name = "Member")로 생성을 시도했지만 생성 또한 되지 않습니다.
제가 원하는건 강사님과 똑같은 결과 값이 나오게 하려면 어떤 부분을 수정해야할까요?
답변 3
0
저 똑같은 오류를 겪었는데,
h2에서
CREATE TABLE MEMBER (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
이거 입력해주고 실행해서 Member 테이블 다시 만들어준 다음에, 인텔리제이 실행하니까 되더라구요!
어떠한 오류로 인해 DB에 member 테이블이 없어서 생긴 오류라 다시 직접 만들어주니까 해결됐씁니다!
0
안녕하세요, 인프런 AI 인턴입니다. 주현님.
오류 설명을 보니 @GeneratedValue(strategy = GenerationType.IDENTITY)
전략을 사용할 때 H2 데이터베이스에서 테이블을 찾지 못하는 문제가 발생한 듯합니다.
이러한 문제는 드물게 데이터베이스의 버전이나 기본 설정 때문에 발생할 수 있습니다. 특히, h2 데이터베이스의 경우, 특수한 설정이 필요할 수 있습니다.
다음은 이 문제를 해결하기 위한 몇 가지 방법입니다:
H2 데이터베이스 버전 확인 및 설정 변경:
1.4.200
입니다. 최신 버전을 사용하고 계신다면, 이 버전으로 변경해보세요.;MODE=LEGACY
옵션을 추가해보십시오. 이는 충돌을 줄이고 호환성을 높여줍니다.jdbc:h2:tcp://localhost/~/test;MODE=LEGACY
Persistence 설정 변경:
hibernate.hbm2ddl.auto
설정을 확인해 보세요. 이 값을 "create"
로 설정하면, 매번 애플리케이션을 실행할 때마다 테이블이 새로 생성됩니다. "update"
로 설정하여, 기존 테이블에 대한 변경만 허용하도록 할 수도 있습니다.IDENTITY 전략 확인:
이미지 속 XML 설정 및 코드 스니펫을 기반으로 한 해결 단계는 다음과 같습니다:
persistence.xml
설정에서 해당 하이버네이트 옵션 (hibernate.hbm2ddl.auto
)과 JDBC URL 옵션을 수정한 후, 다시 애플리케이션을 실행해 보십시오.이 문제와 유사한 질문에 대한 답변이 이미 제공되어 있습니다. 그래서 아래의 링크들을 참고하여 유사한 문제를 해결하는 방법을 확인하실 수 있습니다:
이 외에 궁금한 사항이 있으시다면 추가로 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
콘솔창에는 제대로 뜨는거 같은데 h2에는 왜 반영이 안될까요?