반응형

문제 상황

  • 게시판 구현 시 좋아요(Like) 테이블을 생성해서 사용하려 함
  • Like Entity 생성 후 ddl-auto를 create로 설정하고 프로젝트 실행하였지만, Like Table이 생성되지 않았음
  • 프로젝트는 실행되지만 아래의 에러가 발생한 것을 확인하였음
    • org.hibernate.tool.schema.spi.CommandAcceptanceException
    • java.sql.SQLSyntaxErrorException

원인

  • like는 MySQL의 명령어이기 때문에 Table 이름을 like로 지정할 수 없었음
  • 이와 비슷한 상황으로 rank라는 column을 사용한 경우에도 테이블이 생성되지 않았음

해결 방법

  1. Entity Class 이름 변경
    • Like -> Likes, Good, Heart, ...
  2. Entity 이름은 그대로 사용하지만 @Table 어노테이션을 사용해 테이블 이름만 변경
@Entity
@Table(name = "likes")
public class Like {
}
  1. Entity와 테이블 이름을 "like"로 사용하고 싶다면 아래와 같이 이름 설정
@Entity
@Table(name = "\"like\"")
public class Like {
}
  • 위와 같이 설정 시 테이블 이름도 like로 생성 됨
  1. Column 이름도 마찬가지로 이름을 변경하거나 아래와 같이 설정해주면 됨
@Column(name = "\"rank\"")
private String rank;
반응형

↓ 클릭시 이동

복사했습니다!