[JPA] DB 약어를 칼럼명으로 사용했을 때 Error executing DDL

Cho-D-YoungRae·2022년 8월 10일
0

JPA Entity 를 구성할 때 DB의 약어를 칼럼명으로 사용했더니 DDL이 정상적으로 수행되지 않아서 테이블이 생성되지 않았습니다.

제가 만들었던 테이블은 아래와 같습니다.

@Embeddable
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@EqualsAndHashCode
public class LectureTime {

	// 문제가 되는 칼럼
    @Column(name = "day", nullable = false)
    private Character day;

    @Column(nullable = false, name = "start_time")
    private LocalTime startTime;

    @Builder
    private LectureTime(Character day, LocalTime startTime) {
        this.day = day;
        this.startTime = startTime;
    }

}

day 라는 칼럼은 약어로 사용되는 이름이었고 이로 인해서 테이블이 정상적으로 생성되지 않아서 테스트에서 insert 문이 수행이 되어야 하는데 아래와 같이 Table not found 에러가 발생했습니다.

사실 저는 '테이블이 정상적으로 생성되었는데 왜 생성되지 않았다고 오류를 발생하지?' 라고 계속 삽질하긴 했는데 아래와 같이 해당 메서드 테스트 로그만 보지 않고 전체 테스트 로그를 확인해보니 원인을 알 수 있었습니다.

위와 같이 Error executing DDL 이라고 문구를 띄워주고 있었고

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "SQL 생략..."; expected "identifier"; SQL statement:

위와 같이 약어를 칼럼명으로 사용했을 때 발생시켜주는 에러를 발생시켜주는 것을 확인할 수 있었습니다.

0개의 댓글