반응형
구문 오류로 테이블 생성이 안될 때
아래와 같은 Entity를 생성하고 실행하니 다음과 같은 구문 오류로 인해 테이블이 자동 생성되지 않았다.
@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class Order extends BaseEntity {
@Id @GeneratedValue
private Long id;
private int number;
private int totalPrice;
@Enumerated(value = EnumType.STRING)
private OrderStatus orderStatus;
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItemList = new ArrayList<>();
}
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "
create table order (
id int8 not null,
created_date timestamp,
updated_date timestamp,
created_by varchar(255),
last_modified_by varchar(255),
number int4 not null,
order_status varchar(255),
total_price int4 not null,
primary key (id)
)" via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.6.4.Final.jar:5.6.4.Final]
at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:581) ~[hibernate-core-5.6.4.Final.jar:5.6.4.Final]
...
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.6.3.jar:2.6.3]
Caused by: org.postgresql.util.PSQLException: 오류: 구문 오류, "order" 부근
Position: 20
...
at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) ~[HikariCP-4.0.3.jar:na]
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ~[hibernate-core-5.6.4.Final.jar:5.6.4.Final]
... 39 common frames omitted
테이블 이름이 SQL 예약어인 Order로 설정되어 생성되지 않는 것으로,
@Table 어노테이션을 통해 이름을 바꿔주면 해결된다.
@Entity
@Table(name = "orders")
...
반응형