스프링 입문 - Spring Data JPA

young·2023년 5월 30일
0

Spring Boot

목록 보기
8/19
post-thumbnail

Spring Data JPA

:JPA를 사용할 때 지루하게 반복하는 코드를 자동화 해준다.

  • JpaRepository라는 인터페이스를 상속받아 사용
  • 기본적인 CRUD기능이 제공됨
  • JPA는 Optional로 반환해주기 때문에 get...()을 써야한다.
  • 인터페이스만 생성한다면, 구현체는 스프링 데이터 JPA가 어플리케이션 실행 시점에 주입해준다.
List<Member> findByName(String name);
select m from Member m where m.name :name
  • findByName 메서드 이름으로 JPQL 쿼리를 실행
  • 메소드 이름으로 Query를 정의하고, @Query 어노테이션을 이용하여 직접 JPQL 지정 가능

QueryDSL

: SQL, JPQL을 코드로 작성할 수 있도록 도와주는 Builder API
=> IDE와 컴파일러가 잡아주는 Type-safe 기능 제공

  • 타입 안전성 보장 -> 단순한 문자열로 쿼리를 생성하는 것이 아닌 메소드를 기반으로 쿼리를 생성
    = 오타나 존재하지 않는 컬럼명 명시하는 경우 IDE에서 자동 검출
  • 레퍼런스가 많음

사용하는 이유 ?

SQL, JPQL은 그저 문자열이기 때문에 Type-check가 불가능하고, 해당 로직 실행 전까지 작동 여부 확인 불가!

💡QueryDsl로 JPQL 생성 -> JPQL로 SQL 생성하는 방식

📍 요약

Spring Data Jpa : 데이터 등록, 수정, 삭제
Querydsl : 데이터 조회용 프레임워크

profile
ฅʕ•̫͡•ʔฅ

0개의 댓글