Versions Compared

Key

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

...

결국 서브쿼리 형태로 작동됨을 의미를 하고 From 구 이후에 직접 Select하는 방식을 서브쿼리라고 불립니다.

실제는 Select,From,Where 이후 모든 위치에 서브쿼리 작성이 가능하지만, 추가하는 위치에따라 성능적으로

문제가 되기 때문에 유의해야합니다.  뷰의 관점에서 서브쿼리와 동일한 작동과정이 작동이 수행되었지만, 둘의 사용목적은 완전하게 다릅니다.

서브쿼리가 어떻게 활용이 되는지 살펴보도록 하겠습니다.


서브 쿼리를 이용한 편리한 매칭조건 설정

No Format
select * from address_view av where av.name in( select name from vipUsers );

...

address_view에서 where조건에 서브쿼리를 사용하여 특정테이블이 가진 데이터의 매칭 조건을 설정한 예입니다.


샘플 SQL은 서브쿼리부터 실행을 합니다. ( 실제로 이러한 순서대로 작동이되는지 실행계획을 통해 다시 검증하는것도 필요해보입니다.)

그래서 SELECT에서의 서브쿼리가 아래와같은 상수로 변경이됩니다.

...

Code Block
languagejava
themeEmacs
titleJPQL에서 서브쿼리 사용하기
public interface AddressViewRepo extends Repository<AddressView, Long>{			
	@Query("select t from AddressView t where t.name in (select v.name from VipUser v)")
	List<AddressView> findVipAddress();	
}


//쿼리조회
Iterable<AddressView> userList = addressViewRepo.findVipAddress();

위 샘플은, View테이블 조회 조건을 서브쿼리로 처리한 예입니다.


JPA Query 수행방법

JPA에서 전략에따라, 다양한 방법으로  쿼리문 수행이 가능하다란것을 알아보았습니다.

...