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

작성자 없음

작성자 정보가 삭제된 글입니다.

실전! 스프링 데이터 JPA

예제 도메인 모델과 동작확인

@GeneratedValue에 관한 질문입니다.

작성

·

234

0

member = Member(id=3, username=member1, age=10)

-> member.getTeam() = Team(id=1, name=teamA)

member = Member(id=4, username=member2, age=20)

-> member.getTeam() = Team(id=1, name=teamA)

member = Member(id=5, username=member3, age=30)

-> member.getTeam() = Team(id=2, name=teamB)

member = Member(id=6, username=member4, age=40)

-> member.getTeam() = Team(id=2, name=teamB)

 

 

  1. Team을 먼저 persist 했기때문에 team의 id가 1,2가 됐고, 그 뒤에 순차적으로 member의 id가 3,4,5,6이 된 건가요 ?

     

  2. Team은 Team대로, Member는 Member대로 각 엔티티마다 id를 사용하는게 낫지 않나요? 실무에서는 어떤지 궁금하고, 만약 실무에서는 각 엔티티마다 id값을 공유한다면 강의에서는 모든 엔티티가 같은 id값을 공유하는지 궁금합니다.

답변 1

1

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

  1. 만약 Team을 먼저 persist 했다면 예상하신 것이 맞습니다.

  2. H2는 기본적으로 글로벌 시퀀스를 사용합니다. 따라서, H2를 사용중인 강의 내용에서는 글로벌 시퀀스로부터 id가 생성되고 엔터티 저장 순서에 따라 id가 증가합니다. 보통 테이블별로 시퀀스를 사용합니다. 그러나 절대적인 것은 아닙니다.

감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기