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

kate님의 프로필 이미지

작성한 질문수

실전! Querydsl

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

sequence id값이 공유(?)되는 현상에 대한 질문

해결된 질문

23.06.20 13:39 작성

·

211

0

@GeneratedValue에 의해 Sequence가 호출되어서 순차값이 id에 부여되어 저장되는것으로 알고있습니다.

근데, team의 id와 member의 id의 sequence가 마치 공유가 되는듯이 team의 id가 1, 2 그리고 member의 id가 3, 4, 5, 6 으로 저장이 되는 부분에 대해서

@Column으로 각각의 id 이름을 다르게 부여했다고 하더라도 @GeneratedValue 어노테이션은 엔티티에 정의한 필드명에 맞춰서 생성이 되어서 그런것인지 궁금합니다.

또한, 만약 위 원리가 맞다면 실무에서는 이런 부분에 대해서 각각을 명확하게 구분지어서 해야할거같다 라는 생각이 들었으며,

그렇다면 실무에서는 애초에 @Column에 의한 DB 컬럼명 변경이 아닌 엔티티 자체의 필드명에서 부터 다르게 지정해 줘야 하는것이 아닐까 하는 생각을 해봤습니다.

이 부분에 대해 바람직하게 생각한것이 맞을까요?

답변 1

2

David님의 프로필 이미지

2023. 06. 21. 08:47

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

현재 강의에서는 H2를 사용중입니다.

H2의 경우 기본적으로 글로벌 시퀀스를 사용합니다.

따라서, 별도의 시퀀스를 만들고 그걸 각 엔티티에 적용하지 않는다면 멤버와 팀의 id가 동일한 시퀀스를 사용하게 됩니다.

감사합니다.

kate님의 프로필 이미지
kate
질문자

2023. 06. 21. 09:20

엔티티별로 별도의 시퀀스를 만드는것은 필드명을 변경 하는 것으로는 소용없나요?

jpa의 어노테이션등의 기능으로 존재할까요?

David님의 프로필 이미지

2023. 06. 21. 10:17

만약 엔티티 별로 시퀀스를 따로 가져가고 싶으시다면 @SequenceGenerator에 대해 찾아보시면 좋을 것 같습니다.

kate님의 프로필 이미지

작성한 질문수

질문하기