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

김민지님의 프로필 이미지

작성한 질문수

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

SQL 중심적인 개발의 문제점

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

22.04.07 13:58 작성

·

237

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

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

2022. 04. 09. 16:16

안녕하세요. 김민지님

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

감사합니다.

0

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

2022. 04. 08. 19:28

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

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

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