Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

사용방식에 만족스럽진 못하지만, 동일한 기능을, JPA Repository 인터페이스를 활용하여 수행하였습니다.


Warning

UNION과같이 JPQ이 지원하지 않는 명령문에서 JPA에서 바람직하게 어플리케이션의 데이터와

맵핑하는 기능은 사용할수 없어보입니다. 어렵게 맵핑할수 있는 방식도 있지만 ( UNION JPA ENTITY ECLIPSE LINK 등으로 검색하면 됩니다.)

준비해야할 코드들이 너무 많습니다.

JPQL은 객체중심 탐색모델로 ,Repository는 영속성을 사용한 객체를 통한 일관성있는 데이터 삽입/삭제등

JPA는 충분히 어플리케이션 내에서 도메인 로직을 처리하기에 충분히 강력하고 심플합니다.

하지만 데이터중심의 분석,통계를 위한 추출/엔티티 정의가 어려운 일괄업데이트등에는 그 목적이 맞지 않기때문에

8:2 정도가 적정비율로보고 있으며, 만약 JPA의 숙련도와 상관없이 네이트쿼리비율이 5가 되는 구조라고 하면 JPA는




교집합 구하기

Code Block
languagesql
themeEmacs
SELECT address,age,name,phoneNbr,sex FROM db_example.address a1
WHERE a1.name IN (SELECT name FROM db_example.address2);

SELECT a.address,a.age,a.name,a.phoneNbr,a.sex 
FROM db_example.address a, db_example.address2 b 
WHERE a.name = b.name;


SELECT address,age,name,phoneNbr,sex FROM db_example.address
INTERSECT
SELECT address,age,name,phoneNbr,sex FROM db_example.address2;

...

이후 JOIN을 별도로 설명을 하겠지만, UNION과 JOIN은 아래와 같은 큰차이가 있습니다.

JOINUNION

Image Modified

Image Modified

  • 두개의 필드가 모두 합해지는 병렬조합
  • 필드명이 모두 합해져서,동일 필드명 사용에 유의해야합니다.
  • 엔티티가 다른 관계도가 있는 두 테이블을 하나의 결과로 만들때 사용됩니다.
  • 상하(직렬)조합이며,
  • 합하려는 양쪽 필드의 개수가 동일해야함
  • 컬럼명은 첫번째 선택된 테이블의 컬럼명에 영향받음
  • 전체행 중복제거 연산(Distinct)이 수행되기 때문에 성능에 유의
  • 엔티티가 유사한 결과 테이블을 하나의 결과로 만들때 사용됩니다.