legacy/JPA

[JPA] Identity전략, JdbcSQLFeatureNotSupportedException

heemang.dev 2023. 7. 17. 11:09

 

jpa에서 기본키 전략을 사용할 때 아래 코드를 사용할 것이다

@GeneratedValue(strategy = GenerationType.IDENTITY)

근데 기본키 전략을 사용할 때 숫자형 타입을 사용해야 한다.

 

String을 사용하지 말자

@Id
@Column(name = "id", length = 10)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;

기본키로 String 타입을 지정했었는데 아래의 오류가 발생했다.

ddl에 문제가 있음을 알 수 있다.

 

위의 오류에 대해서 검색해보니 기본키 전략을 사용할 때 숫자 타입 Long을 사용해야 한다고 한다.

https://www.inflearn.com/questions/382601/generatedvalue-%EC%82%AC%EC%9A%A9-%ED%9B%84-ddl-%EC%8B%A4%ED%8C%A8

 

@GeneratedValue 사용 후 DDL 실패 - 인프런 | 질문 & 답변

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼

www.inflearn.com

 

기본키로 Long을 사용하자

정상적으로 ddl이 수행됨을 알 수 있다.

@Id
@Column(name = "id", length = 10)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;


결론

기본키 전략을 사용할 때는 Long을 사용하자.