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

김민지님의 프로필 이미지

작성한 질문수

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

SQL 중심적인 개발의 문제점

ALBUM을 조회하는 과정에서 문제가 생기는 이유

작성

·

238

0

Album 을 조회하는 과정 (문제!!)

  1. 각각의 테이블에 따른 Join SQL을 작성한다. (Item과 Album을 Join해서 데이터를 가져온다.)
  2. 각각의 객체를 생성하고 모든 필드 값을 세팅한다.(Item과 Album 각각 모든 필드값을 세팅한다.) → 디비는 1인데 객체는 n개가 돼서 문제가 생김
  3. Movie, Book을 조회하고 싶으면 위의 과정을 또 반복해야 한다.

 

2번에서요 디비는 1인데 객체는 N개가 되는거 어쩔수없는일아닌가요..? 이게 왜 문제가 되나요..?

그리고 이거때문에 디비에 저장할 객체에는 상속관계를 사용하지 않는다는데 뒷부분 가보면 상속관계 쓰잖아요!

물론 디비에는 상속이라는 개념이 없지만

  • @Inheritance(strategy=InheritanceType.XXX)의 stategy를 설정해

  • @DiscriminatorColumn(name="DTYPE")

  • @DiscriminatorValue("XXX")

이런 방법들로 상속을 구현하잖아요?! 
이방법들을 쓸 수있다는것은 위의 2번의 문제가 해결되었으니까 상속을 구현할 수 있다는거 아닌가요?
2번의 문제가 어떻게 해결된거죠?

 

답변 2

1

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

안녕하세요. 김민지님

SQL을 직접 다루는 경우 이렇게 진행하는 것이 번거롭다는 뜻입니다. 어떤 버그나 프로그램에 문제가 발생한다는 의미는 아닙니다. 반면에 JPA를 사용하면 해당 부분을 자연스럽게 처리된다는 뜻입니다. 

감사합니다.

0

김민지님의 프로필 이미지
김민지
질문자

슈퍼타입 서브타입 물리모델을 사용하면 만들어진 테이블을 조회할때 문제가 발생된대요.

근데 관계형데이터베이스에서 상속..에대한 개념이 없긴하지만 무튼 상속을 구현하려면 단일테이블전략이든 조인전략이든 사용해서

구현을 해내잖아요? 그럼 어쨌든 문제가 안생기니까 구현한거아닌가요?