TIL.64

hyunki__ss·2022년 9월 21일
0

2022년 9월 21일 수요일

@ 아침 독서, 저녁 수업영상/문제풀이, 주말 정리/온라인강의
현재로써는 이렇게 공부를 나눠서 진행하는 것이
가장 효율적인 방법으로 보인다, 결국에는 꾸준하게
이어갈 수 있는 노력을 찾는 것 또한 중요할 것이기에
나의 일상 패턴에 자연스럽게 물들 수 있도록 이어가자.

[수업 순서]

  • JPQL

[프로젝션(projection)]

  • SELECT절에 조회할 대상을 지정하는 것을
    프로젝션이라고 한다.

[프로젝션 방식 종류]
1. 엔티티 프로젝션

  • 원하는 객체를 바로 조회할 수 있으며
    조회된 엔티티는 영속성 컨텍스트가 관리한다.
  1. 임베디드 프로젝션
  • 엔티티와 거의 비슷하게 사용하지만
    영속성 컨텍스트에서 관리되지 않는다.
  1. 스칼라 타입 프로젝션
  • 숫자, 문자, 날짜 같은 기본 데이터 타입으로
    영속성 컨텍스트에서 관리되지 않는다.
  1. new 명령어 활용 프로젝션
  • DTO로 바로 조회하는 방식으로 new 패키지명.DTO명을 쓰면
    바로 반환 받을 수 있다. 단, 엔티티가 아니므로
    영속성 컨텍스트에서 관리되지 않는다.

[임베디드 타입(복합 값 타입 또는 내장 타입)]

  • 새로운 값 타입을 직접 정의한 것으로 주로 기본 값 타입을
    모아서 만든 하나의 타입을 말한다. 엔티티의 필드 중
    일부분을 하나의 임베디드 타입으로 정의하면 알아보기 쉽고, 재사용성이 높게 디자인 할 수 있어 유지보수에 용이하다.
  1. @Embeddable : 값 타입을 정의하기 위한 어노테이션
  2. @Embedded : 값 타입을 사용하는 곳에 적용하는 어노테이션

[JPQL 그룹함수]

  • JPQL의 그룹 함수는 COUNT, MAX, MIN, SUM, AVG이며
    SQL의 그룹 함수와 별반 차이가 없다.
    단, 주의해야 하는 사항이 있다.
  1. 그룹함수의 반환 타입은 결과 값이 정수이면 Long,
    실수이면 Double 타입으로 반환된다.
  2. 값이 없는 상태에서 COUNT를 제외한 다른 그룹함수의 경우 NULL이 되며 COUNT만 0이 된다.
    반환 값을 담기 위해 선언하는 변수 타입을 기본자료형으로 하면 조회 결과를 언박싱할 때 NPE이 발생한다.
  3. 그룹함수의 반환 자료형은 Long or Double이기 때문에 Having절에서 그룹 함수 결과 값과 비교하기 위한
    파라미터 타입은 Long or Double로 해야 한다.

[JOIN]

  • 조인의 종류
  1. 일반 조인 : 일반적인 SQL 조인을 의미
    1-1. 내부 조인(inner join)
    1-2. 외부 조인(outer join)
    1-3. 컬렉션 조인(one to many join)
    1-4. 세타 조인(cross join)
  2. 폐치 조인 : SQL 조인 종류가 아닌 jpql에서
    성능 최적화를 위해 제공하는 기능

※ 현재 세미프로젝트는 기본적인 기획을 마무리하고
디비 모델링 중이다, 개발을 열흘 뒤부터 들어가기에
그 전까지 스프링부트 진도를 나간다고 한다,
시간이 엄청 빠르게 흘러가는데,
알차게 보내는 느낌은 있어서 뿌듯하기도 하다,
앞으로도 화이팅!

profile
야구선수 출신 개발자

0개의 댓글