본문 바로가기
Spring

[JPA] Entity Custom ID Generator 만들기

by 루에 2022. 7. 7.
반응형

JPA에서 기본 시퀀스가 아닌, 개발자가 임의로 커스텀하여 아이디를 생성하는 방법

 

요약하자면,

  • IdentifierGenerator 인터페이스를 구현해서 configure(), generate() 두 개의 함수를 구현 한다.
    • configure - 외부에서 커스텀 ID 구현을 위해 설정한 파라미터 값을 가져와서 내부에 선언한 변수에 할당하는 역할(prefix, suffix 등등)
    • generate - 커스텀한 ID를 리턴하는 역할. 보통 DB에서 시퀀스를 가져와 사용자가 지정한 형태를 입히고 리턴한다.
  • 사용할 엔티티에 아래와 같은 형태로 GenericGenerator에 위에서 만든 클래스를 strategy에 넣고 이름을 지정한다. 파라미터로 사용자 임의 데이터를 넣는다. name이 key값으로 활용된다.
  • GeneratedValue 어노테이션에 GenericGenerator에서 지정한 name을 generator로 넣는다.
@GenericGenerator(name = "idGenerator", strategy = "com.common.generator.IdGenerator",
   parameters = {
      @Parameter(name = IdGenerator.SEQUENCE, value = "sq_user_id"),
      @Parameter(name = IdGenerator.PREFIX, value = "USER")
})
@GeneratedValue(generator = "idGenerator")

 

더 자세한건 아래 참조

https://zet-it-story.tistory.com/1

 

반응형

댓글