h2에서 @GeneratedValue(strategy = GenerationType.IDENTITY) 부분이 되지 않습니다.
416
작성한 질문수 8



강사님과 똑같이 했는데 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
안녕하세요. 주현님, 공식 서포터즈 y2gcoder입니다.
캡처해주신 부분 중 두번째의 Main 클래스에서 어떤 문제가 발생했을 수도 있습니다. 현재는 catch 문 내부에 단순히 트랜잭션을 롤백하는 부분만 있어 해당 문제가 발생했을 때 로그가 보이지 않을 수 있습니다!
catch 문 내에 e.printStackTrace() 를 추가해주시고 main 클래스를 다시 실행 후에 나오는 전체 로그를 알려주시겠습니까?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 주현님.
오류 설명을 보니 @GeneratedValue(strategy = GenerationType.IDENTITY) 전략을 사용할 때 H2 데이터베이스에서 테이블을 찾지 못하는 문제가 발생한 듯합니다.
이러한 문제는 드물게 데이터베이스의 버전이나 기본 설정 때문에 발생할 수 있습니다. 특히, h2 데이터베이스의 경우, 특수한 설정이 필요할 수 있습니다.
다음은 이 문제를 해결하기 위한 몇 가지 방법입니다:
H2 데이터베이스 버전 확인 및 설정 변경:
- 종종 H2의 특정 버전에서 호환성 문제가 발생합니다. 일반적으로 사용되는 버전은
1.4.200입니다. 최신 버전을 사용하고 계신다면, 이 버전으로 변경해보세요.
- JDBC URL에
;MODE=LEGACY옵션을 추가해보십시오. 이는 충돌을 줄이고 호환성을 높여줍니다.
- 예:
jdbc:h2:tcp://localhost/~/test;MODE=LEGACY
- 종종 H2의 특정 버전에서 호환성 문제가 발생합니다. 일반적으로 사용되는 버전은
Persistence 설정 변경:
hibernate.hbm2ddl.auto설정을 확인해 보세요. 이 값을"create"로 설정하면, 매번 애플리케이션을 실행할 때마다 테이블이 새로 생성됩니다."update"로 설정하여, 기존 테이블에 대한 변경만 허용하도록 할 수도 있습니다.
IDENTITY 전략 확인:
- IDENTITY 전략은 데이터베이스의 설정에 따라 다르게 동작할 수 있기 때문에, H2와의 호환성 체크가 필요합니다. 이 전략에서는 기본 키가 삽입 전에는 식별되지 않으며 이는 일부 설정에서 문제를 일으킬 수 있습니다.
- IDENTITY 전략은 데이터베이스의 설정에 따라 다르게 동작할 수 있기 때문에, H2와의 호환성 체크가 필요합니다. 이 전략에서는 기본 키가 삽입 전에는 식별되지 않으며 이는 일부 설정에서 문제를 일으킬 수 있습니다.
이미지 속 XML 설정 및 코드 스니펫을 기반으로 한 해결 단계는 다음과 같습니다:
persistence.xml설정에서 해당 하이버네이트 옵션 (hibernate.hbm2ddl.auto)과 JDBC URL 옵션을 수정한 후, 다시 애플리케이션을 실행해 보십시오.
이 문제와 유사한 질문에 대한 답변이 이미 제공되어 있습니다. 그래서 아래의 링크들을 참고하여 유사한 문제를 해결하는 방법을 확인하실 수 있습니다:
이 외에 궁금한 사항이 있으시다면 추가로 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
실무 조언 관련 질문입니다.
0
38
1
H2데이터베이스 파일 생성
0
45
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
47
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
45
1
JPQL 메소드와 락
0
47
1
Delivery @OneToOne
0
54
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
85
2
UnsupportedOperationException 발생
0
80
3
H2 Database 연결이 안됩니다.
0
86
2
연관관계 매핑 질문드립니다.
0
77
2
h2데이터베이스 실행오류
0
103
2
persistence.xml
0
101
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
74
1
영속성 컨텍스트
0
59
1
JPA 프록시
0
87
1
Native Query와 MyBatis
0
61
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
81
1
임베디드 타입 예시 코드 관련 질문
0
110
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
89
3
인텔리제이 패키지 커서 단축키 질문
0
100
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
134
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
67
1
임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.
0
95
1
데이터베이스가 초기화되는 것 같아요
1
172
2






