Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
목차 펼치기
Info

조금더 복잡한 쿼리를 ORM으로 시도해보겠습니다. Let's go

Expand
title

Table of Contents
outlinetrue


조건분기/집합연산/윈도우함수/갱신

...


조건분기

SQL의 조건 분기는 특수한 값을 반환합니다.

...

  • district를 얻기위해 , 데이터베이스에게 일을 시키지 않습니다. 어플리케이션이 분산해서 연산할수 있음을 의미합니다.
  • 조회가 100개가되었다고 해서, getDistrict() 를 호출하지 않으면(사용하는곳이없으면), 어플리케이션내에서 변환 연산조차 발생하지 않습니다.  ( Lazy컨셉,호출이 필요하지 않으면 사용하지 않겠다.)
  • 다양한 자바 함수사용이 가능합니다.

위와같이 변환할수있다고 하더라도, SQL문의 CASE문은 여러요소에사용되는 식이기때문에,

...

SQL에서 조건문처리는 JAVA의 CASE문과 작동방식은 동일하지만 아주 큰차이가 있습니다.


Note

CASE문을 변환하다, 본의 아니게 CASE의 본질에대해 고민해보았습니다. ( 정답은 아닐수 있습니다. )


SQL문에서 CASE는 식입니다. SQL문은 절차식 언어가 아니기때문에 반환값이 항상있으며 다양한 요소에 결합이 될수 있습니다.

JAVA에서 CASE는 문장입니다. 문장의 중간에 포함될수 있으며 절차식 흐름을 변경만하고 값자체를 반환하지는 않습니다.

절차식에 익숙해져 있다고하면 SQL에서는 성능좋은식을 만들기가 어렵습니다.

어플리케이션 내에서도 람다식을 활용하여 리스트와같은 데이터를 필터처리한다면 SQL과 비슷한 사고방식으로 데이터가공처리가 될것입니다. 

...