증상
Caused by: java.sql.SQLSyntaxErrorException: Table 'DBNAME.hibernate_sequence' doesn't exist
CODE
원인
Entity 의 ID 생성 strategy 가 GenerationType.AUTO 일 경우 hibernate는 자동으로 기본 sequence 정보 테이블인 hibernate_sequence
을 찾지만 없어서 발생
@Id
@GeneratedValue(strategy = GenerationType.AUTO )
private Long id;
JAVA
해결
hibernate_sequence 생성
drop 스키마후 application.properties 에 다음 내용 추가
spring.jpa.hibernate.ddl-auto=create
CODE
strategy 변경
수동으로 입력하도록 설정 변경
application.properties 에 다음 내용 추가
spring.jpa.hibernate.use-new-id-generator-mappings=false
CODE
Entity 객체 수정
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
JAVA
sequence generator 사용
@Entity
@Data
@Table(name="Customers")
@SequenceGenerator(name="my_seq_generator",
sequenceName = "CUSTOMER_SEQUENCE" // DB Sequence Name
//, initialValue = 1,
// allocationSize = 50
)
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
JAVA
Ref