인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

주아아빠님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPA Composite key(복합키) @IdClass , @EmbeddedId 어떤 걸 쓸 지 장단점 및 선정 기준이 궁금합니다

해결된 질문

작성

·

1.9K

1

강사님 안녕하세요~

 

저희 플랫폼회사에서는 @EmbeddedId 만 쓰고 있고

강사님의 책을 읽어 봤을 때는

@IdClass -> db 스럽다

@EmbeddedId -> 객체 스럽다, id.컬럼 으로 좀 더 코드가 더 들어간다라고 표현하십니다.

 

강사님이

실전 실무에서 JPA Composite key(복합키) @IdClass , @EmbeddedId
둘중에 어떤걸 선호호고 많이 쓰는지 장단점 뭔지,

배달에민족 시스템에서는 어떤 이유로, 둘 중 어떤 걸 사용 하는지 알 수 있을까요?

 

--█●●--------------------------------------------

#김영한

#@IdClass

#@EmbeddedId

#join

#조인

#멀티

#컬럼

#여러개

#multiple

#column

#JPA

--█●●--------------------------------------------

답변 2

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김동희님

David님 의견에 추가로 다음을 참고해보시면 도움이 되실거에요.

https://www.inflearn.com/questions/38108

감사합니다.

 

주아아빠님의 프로필 이미지
주아아빠
질문자

감사합니다 강사님 수고하세요~

2

David님의 프로필 이미지

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

실무에서는 프로젝트의 요구 사항, 팀의 코딩 스타일, 데이터베이스 설계에 따라 선택이 달라지기 때문에 일관된 기준은 없습니다. 그러나, 일반적으로 객체 지향적인 접근을 선호하는 경우가 많으므로 @EmbeddedId를 사용하는 경우가 더 많이 보입니다.

@EmbeddedId를 사용하면, 복합 키를 하나의 객체로 취급할 수 있어 객체 지향적인 코드를 작성하는 데 도움이 됩니다. 또한, 복합 키 클래스를 재사용할 수 있고 코드의 가독성도 높아질 수 있습니다.

그러나 프로젝트와 팀의 선호도에 따라 @IdClass를 사용하는 경우도 있으므로, 두 방식을 모두 이해하고 적절한 상황에 맞게 선택하는 것이 필요합니다.

감사합니다.

주아아빠님의 프로필 이미지
주아아빠
질문자

답변 감사드립니다. 수고하세요