...
Code Block |
---|
Caused by: java.sql.SQLSyntaxErrorException: Table 'DBNAME.hibernate_sequence' doesn't exist |
원인
Entity 의 ID 생성 strategy 가 GenerationType.AUTO 일 경우 hibernate는 자동으로 기본 sequence 정보 테이블인 hibernate_sequence
을 찾지만 없어서 발생
Code Block |
---|
|
@Id
@GeneratedValue(strategy = GenerationType.AUTO )
private Long id; |
해결
1. 테이블 생성
...
hibernate_sequence 생성
drop 스키마후 application.properties 에 다음 내용 추가
Code Block |
---|
spring.jpa.hibernate.ddl-auto=create |
Warning |
---|
기존 스키마 삭제하면 데이타 날라가니까 주의 |
strategy 변경
수동으로 입력하도록 설정 변경
application.properties 에 다음 내용 추가
Code Block |
---|
spring.jpa.hibernate.use-new-id-generator-mappings=false |
Entity 객체 수정
Code Block |
---|
|
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; |
sequence generator 사용
Code Block |
---|
|
@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; |
Ref