@GeneratedValue() table이 생성이 안돼요 && Insert 쿼리가 안나가요
855
작성한 질문수 30
환경
1. h2 version 1.4.199
2. JPA 하이버네이트 5.3.10.Final
3. <property name="hibernate.hbm2ddl.auto" value="create"/>
Member.class
package hellojpa;
import javax.persistence.*;
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
@Column(name = "name", nullable = false)
private String username;
public Member() {
}
public Member(String id, String username) {
this.id = id;
this.username = username;
}
/**
* getter setter
*/
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
JpaMain.java
package hellojpa;
import javax.persistence.*;
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
@Column(name = "name", nullable = false)
private String username;
public Member() {
}
public Member(String id, String username) {
this.id = id;
this.username = username;
}
/**
* getter setter
*/
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
에러코드
WARN: GenerationTarget encountered exception accepting command : Error executing DDL "
create table Member (
id varchar(255) generated by default as identity,
name varchar(255) not null,
primary key (id)
)" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "
create table Member (
id varchar(255) generated by default as identity,
name varchar(255) not null,
primary key (id)
)" via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155)
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at hellojpa.JpaMain.main(JpaMain.java:10)
Caused by: org.h2.jdbc.JdbcSQLFeatureNotSupportedException: Feature not supported: "CHARACTER VARYING(255)"; SQL statement:
create table Member (
id varchar(255) generated by default as identity,
name varchar(255) not null,
[50100-210]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:575)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:496)
at org.h2.message.DbException.get(DbException.java:227)
at org.h2.message.DbException.get(DbException.java:203)
at org.h2.message.DbException.getUnsupportedException(DbException.java:291)
at org.h2.command.ddl.SequenceOptions.getBounds(SequenceOptions.java:316)
at org.h2.command.ddl.SequenceOptions.getBounds(SequenceOptions.java:244)
at org.h2.schema.Sequence.<init>(Sequence.java:101)
at org.h2.table.Column.initializeSequence(Column.java:459)
at org.h2.command.ddl.CommandWithColumns.generateSequences(CommandWithColumns.java:103)
at org.h2.command.ddl.CreateTable.update(CreateTable.java:110)
at org.h2.command.CommandContainer.update(CommandContainer.java:174)
at org.h2.command.Command.executeUpdate(Command.java:252)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:408)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:191)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:507)
at org.h2.engine.SessionRemote.done(SessionRemote.java:611)
at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:237)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:228)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201)
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
... 15 more
답변 2
3
안녕하세요. taeu kim님, 공식 서포터즈 David입니다.
id를 string이 아닌 Long 타입으로 변경한 뒤 다시 시도해보시겠어요?
감사합니다.
0
테이블은 만들어지나,
와같은 에러가 발생하며 데이터가 DB에 들어가지 않습니다.
===== 추가 답변 ====
GenerateType을 AUTO로 바꾸어주니 해결되었습니다. 혹시 앞서
- 테이블이 만들어지지 않은 이유
- Identity 타입으로 오류가 발생한 이유
를 알 수 있을까요?
0
1.4.200 버전으로 수정하였으나 Identity 타입으로는 여전히 아래의 문제가 발생합니다.

== 추가 답변 ==
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test;MODE=LEGACY"/>
를 통해 수정해 문제를 해결하였습니다.
해결하였습니다.
스택오버플로우에서는 1.4.200 버전에 취약성이 있어서 그렇다고 하네요
1
저와 비슷한 이슈로 고생하시는 분들을 위해 Create 테이블 및 Insert 쿼리 이슈 해결과정 링크 남깁니다.
https://abcdefgh123123.tistory.com/470
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
15
2
inheritance startegy 선택시 고려사항
0
21
1
Entity 동등성 비교
0
18
1
실무 조언 관련 질문입니다.
0
44
1
H2데이터베이스 파일 생성
0
55
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
52
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
51
1
JPQL 메소드와 락
0
55
1
Delivery @OneToOne
0
60
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
92
2
UnsupportedOperationException 발생
0
85
3
H2 Database 연결이 안됩니다.
0
92
2
연관관계 매핑 질문드립니다.
0
84
2
h2데이터베이스 실행오류
0
107
2
persistence.xml
0
106
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
80
1
영속성 컨텍스트
0
64
1
JPA 프록시
0
94
1
Native Query와 MyBatis
0
67
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
85
1
임베디드 타입 예시 코드 관련 질문
0
114
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
94
3
인텔리제이 패키지 커서 단축키 질문
0
108
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
142
1






