1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
@Entity
@Data
@Table(name="painting")
public class Painting {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "paintingId")
private Long paintingId;
@Column(name = "painting_meta", columnDefinition = "text")
private String painting_meta;
} |
cs |
자 위의 코드를 보자.
GenerationType.IDENTITY 라고 적혀있다.
GenerationType.SEQUENCE 로 변경하면 컬럼 값이 10씩 커질 것이다.
id = 10 , 20 , 30 , 40 , 50 .... 이런 식이다.
GenerationType.AUTO 로 변경하면 1,2,3,4,5,6,7 이렇게 증가한다.
그런데 여기서 한가지 문제가 있다.
보통의 경우 1,2,3,4,5로 증가한다.
여기서 @PostConstruct 애너테이션을 붙이고 여러 개의 테이블에 실행을 하게 되면 잘못된 결과가 나타난다.
예를 들어서 다른 데이터베이스 테이블이 더 있다고 가정할때
자유게시판 글은 1
댓글은 갑자기 2부터 시작
공지사항은 3부터 시작 될 수 있다.
그럴때를 막기위해 GenerationType.IDENTITY 를 쓰면 된다.
이렇게 하면
자유 게시판 1
댓글 게시판 1
공지사항 1
이렇게 모두 1로 값이 들어갈 수 있다.
추가적으로 application.properties에 아래 항목을 작성한다.
spring.jpa.hibernate.use-new-id-generator-mappings=false
'Spring Framework' 카테고리의 다른 글
maven , gradle 빌드 명령어 (0) | 2019.01.10 |
---|---|
스프링 gradle database 2개 있는 경우 (0) | 2019.01.10 |
깃에서 Intellij 인텔리j 프로젝트 가져왔는데 실행이 안될때 (0) | 2018.12.16 |
spring boot oauth2.0 Postman 에서 토큰 요청 , refresh 요청 하는 방법 (4) | 2018.12.12 |
스프링부트 spring boot json 리턴 하는 방법 (0) | 2018.12.11 |
댓글