-
JPA 기본키 생성 전략 @GeneratedValuespring boot 2024. 3. 25. 21:15
GenerationType.IDENTITY
IDENTITY는 기본키 생성을 db에 맡기는 방식입니다. MySQL, PostgreSQL 등에서 사용합니다.
값을 insert할때 id값을 AUTO_INCREMENT해준다.
id값을 따로 설정하지 않은 경우 id값은 db에 들어간 이후에 알수있다.
GenerationType.SEQUENCE
SEQUENCE는 규칙에 따라 값이 일정하게 증가하는 방식입니다. Oracle, PostgreSQL 등에서 사용합니다.
예)
@Entity @SequenceGenerator( name="users_seq", // 식별자 이름 sequenceName="users_seq", // 시퀀스 이름 initialValue=100, // 시작 수 allocationSize=1 // 호출한번에 증가하는 수 ) public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_seq") private Long id; }
GenerationType.TABLE
키 전용 테이블을 만들어서 시퀀스를 흉내내는 방식입니다. 모든 데이터베이스에서 사용 가능합니다.
예)
@Entity @SequenceGenerator( name = "USER_SEQ_GENERATOR", table = "MY_SEQUENCES", // 데이터베이스 이름 pkColumnValue = "USER_SEQ", allocationSize = 1) public class User { @Id @GeneratedValue(strategy = GenerationType.TABLE, generator = "USER_SEQ_GENERATOR") private Long id; }
'spring boot' 카테고리의 다른 글
[Spring] Filter, Interceptor, AOP 차이 (1) 2024.08.09 [Spring boot] JPA 정렬과 페이징 (0) 2024.02.24 [Spring boot] JUnit에 대해 알아보자 (0) 2024.02.17 [Spring boot] RestTemplate에 대해 알아보자 (0) 2024.02.17 [Spring boot] JPA 적용하기, MySQL (0) 2024.02.14