강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

승윤님의 프로필 이미지
승윤

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 서비스 개발

Entity에 대해서 질문있습니다.

작성

·

325

1

Member엔티티에서 지금 강의에서는 id를 그냥 

@GeneratedValue만 쓰시잖아요?
제가 SEQ를 만들어서 넣고싶어서 열심히 인터넷을 찾아보니
 
@Entity
@SequenceGenerator(
  name = MEMBER_SEQ_GENERATOR",
  sequenceName = "MEMBER_SEQ", 
  initialValue = 1,
  allocationSize = 1)
@Getter @Setter
public class Member {

 @Id @GeneratedValue
(strategy = GenerationType.SEQUENCE,
    generator = "MEMBER_SEQ_GENERATOR")
 private Long id;
 private String username;
 
요렇게하니까 seq가 생성되더라구요,
 
그럼 여기서질문이있는데, 기존 DB에서 seq는 nextVal 같이 미리 다음시퀀스값을 가져올수있는기능이있는데,
 
jpa에서는 어떻게 그런기능을 구현하나요?
 

답변 1

2

안녕하세요. seungyun9393님, 공식 서포터즈 David입니다.

엔티티 정보를 바탕으로 sequence generator를 세션팩토리에 등록해둡니다.

필요할 때마다 해당 sequence generator를 참고하여 id 값을 생성하게 됩니다.

자세한 내용은 SessionFactoryImpl 생성자 쪽 코드를 참고해주세요.

감사합니다.

승윤님의 프로필 이미지
승윤

작성한 질문수

질문하기