증상

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