반응형
목차
상황
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보며 OAuth2 관련 파트 실습 중, 아래와 같은 오류를 확인하였다.
> org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table if exists user" via JDBC Statement
> Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "drop table if exists [*]user"; expected "identifier";
그리고, 정상적으로 user 테이블 생성이 되지 않는것도 확인하였다.
> org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table user (id bigint not null auto_increment, created_date datetime(6), modified_date datetime(6), email varchar(255) not null, name varchar(255) not null, picture varchar(255), role varchar(255) not null, primary key (id)) engine=InnoDB" via JDBC Statement
> Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table [*]user (id bigint not null auto_increment, created_date datetime(6), modified_date datetime(6), email varchar(255) not null, name varchar(255) not null, picture varchar(255), role varchar(255) not null, primary key (id)) engine=InnoDB"; expected "identifier"; SQL statement:
create table user (id bigint not null auto_increment, created_date datetime(6), modified_date datetime(6), email varchar(255) not null, name varchar(255) not null, picture varchar(255), role varchar(255) not null, primary key (id)) engine=InnoDB [42001-214]
해결
에러를 확인해보니, expected "identifier" 관련 문구가 눈에 띄는데 이는 특정 키워드의 unique가 보장되지 않아 생기는 문제인것같다.
다시말해, 쿼리 내 테이블명, 컬럼명, 변수명 등등.. 이 중 특정 값의 unique가 보장되지 않는다는것으로 해석될 수 있는데, 위 문제에서는 "user" 키워드가 문제를 일으킨것으로 보인다.
따라서 테이블명을 tblUser로 명명해주었다. (꼭 이렇게 하지 않아도 괜찮다.)
정상적으로 신규 유저 데이터가 insert 된것을 확인할 수 있다.
반응형
'Language > JAVA&Spring' 카테고리의 다른 글
[Spring] DAO, DTO, VO 개념 간단 정리 (0) | 2022.10.24 |
---|---|
[JAVA] 가비지 컬렉션 GC (1) | 2022.10.11 |
[JAVA] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) (0) | 2022.09.16 |
[JAVA] 인터페이스 사용 이유 (Interface) (0) | 2022.09.15 |
댓글