카테고리 없음

SpringBoot JPA - 엔티티 insert 추가가 안되는 현상 "cannot find uno seq..."

탐훈 2024. 10. 28. 00:18
728x90

개요)

@GeneratedValue 에 대한 이슈

 

 


[1. 상황]

 

간단한 이슈였는데 

JPA 테이블 생성에 대한 설정을

아래와 같이 했다.

spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.show-sql=true

 

 

서버가 시작되면

엔티티로 선언된 녀석들이

테이블로 생성된다. 

 

그런데 서버를 시작할 때

User엔티티를 다음과 같이 설정했었다.

 

[User.java]

...생략 


@Entity
public class User {

 @Id
 @GeneratedValue
 @Column(name = "uno")
 private Long uno;

... 생략

}

 

PK 값을

auto_increment로 하지 않아

 

 

insert 자체가 안되고 있었다.

 


[2. @GeneratedValue의 기본값에 대해 알게되다]

 

@GeneratedValue 속성을 설정하지 않으면

기본값으로

 

@GeneratedValue(strategy = GenerationType.AUTO)

로 된다.

 

둘의 차이는 뭘까

@GeneratedValue(strategy = GenerationType.AUTO)

vs

@GeneratedValue(strategy = GenerationType.IDENTITY)

 

@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy =GenerationType.IDENTITY)
식별자 생성을 JPA가 담당 식별자 생성을 DB에 Auto_increment로 처리

 

 


[3. 결론]

테이블이 이미

@GeneratedValue(strategy = GenerationType.AUTO)

설정 값으로 생성되어서 테이블을 삭제하고

 

AUTO를 IDENTITY로 속성값을 바꾼 뒤

서버를 재시작하여

테이블을 새로 생성하게 하였다.

 

그러니까 잘 insert 됨!