[인강노트 - querydsl] 1. 소개

봄도둑·2022년 12월 26일
0

김영한님의 실전! querydsl 강의 내용을 정리한 노트입니다. 블로그에 있는 자료를 사용하실 때에는 꼭 김영한님 강의 링크를 남겨주세요!

실무에서 주로 쓰는 쿼리는 복잡한 쿼리 → 쿼리를 작성하는데 많은 시간을 사용 → 이걸 해결해주는 게 querydsl

쿼리를 자바 코드로 작성하고 문법 오률를 컴파일 시점에서 잡아줌 + 동적 쿼리

  • 문법이 sql과 비슷함

jpa에서 문자열로 작성한 쿼리를 날려준다고 생각해보자

String username = "jongyoon";
String query = "select m from member m" + "where m.username = :username";
List<Member> result = em.createQuery(query, Member.class)
		.getResultList();
  • 저 query가 문법적으로 잘못되었다는 걸 컴파일 시점에는 알 수 없음
  • 그렇다면 querydsl은 어떻게 쿼리를 날려줄까?
public void querydsl() {
	String username = "jongyoon";
	List<Member> result = queryFactory
					.select(member)
					.from(member)
					.where(member.username.equal(username))
					.fetch();
}
  • querydsl은 자바 컴파일러가 오류를 잡아줌 → 컴파일 시 쿼리가 문제가 있다는 걸 알 수 있음
  • 기존 쿼리 스트링에서는 할 수 없는 것들이 많음 → querydsl의 where 같은 경우 내부에 날려주는 파라미터를 메소드로 빼내서 쓸 수 있음 → 조건을 언제나 재사용할 수 있다는 강점이 있음

Querydsl + 스프링 데이터 JPA ⇒ 개발이 재밌어짐

  • 코드를 단순 반복할 필요도 없고, 복잡한 쿼리도 자바 코드로 날려주기 때문에 백엔드 언어에만 집중할 수 있음
  • 복잡한 실무에서 위와 같은 조합은 선택이 아니라 필수
  • 관계형 데이터베이스를 사용한다면 위의 조합을 사용하는 것이 맞다고 봄
profile
Java Spring 백엔드 개발자입니다. java 외에도 다양하고 흥미로운 언어와 프레임워크를 학습하는 것을 좋아합니다.

0개의 댓글