본문 바로가기
Tips/JPA

[JPA] 구문 오류로 테이블 생성이 안될 때

by DevJaewoo 2022. 8. 23.
반응형

구문 오류로 테이블 생성이 안될 때

아래와 같은 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")
...

 

반응형