카테고리 없음
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 됨!