일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- backenddeveloper
- DynamoDB
- 스터디
- rds
- jpa
- sqs
- Redis
- CICD
- 티스토리챌린지
- QueryDSL
- 자격증
- mapping
- codebuild
- 개발자
- serverless
- aws
- orm
- Docker
- Spring Boot
- 백엔드
- bootcamp
- MSA
- goorm
- CodeCommit
- ec2
- 오블완
- s3
- codedeploy
- goorm x kakao
- spring
- Today
- Total
목록QueryDSL (6)
gony-dev 님의 블로그
지난 시간에는 스프링 데이터 JPA와 Querydsl의 기능을 비교하고,사용자 정의 리포지토리를 만들어 Querydsl을 상속받는 인터페이스를 구현보았다.이번에는 마지막 강의 정리로 복잡한 실무 환경에는 알맞지 않지만 스프링 데이터에서 제공하는 기능들을 살펴보겠다.인터페이스 지원 - QuerydslPredicateExecutorQuerydslPredicateExecutor는 인터페이스는 스프링 데이터 JPA에 Querydsl을 사용하기 위해 제공되는 기능이다.이를 사용하기 위해서는 사용하고 있는 인터페이스에 상속하면 된다!MemberRepository.javapublic interface MemberRepository extends JpaRepository, MemberRepositoryCustom, Q..
지난 시간에는 Repository를 통해 순수 JPA를 만들고 이를 Querydsl과 비교하는 시간을 가졌다.이번에는 Spring Data JPA를 이용한 방법과 Querydsl과의 차이를 알아보는 시간을 가져보도록 하겠다. 스프링 데이터 JPA 리포지토리로 변경이제 우리는 JpaRepository를 상속받은 인터페이스를 통해 제공되는 메서드로 간단한 쿼리를 조회할 수 있다! MemberRepositorypublic interface MemberRepository extends JpaRepository { // select m from Member m where m.username = ? List findByUsername(String username);}문득 코드를 보면 이런 생각을 할 수도..
지난 시간에는 querydsl을 이용하여 원하는 프로젝션 대상에 따라 결과를 효율적으로 반환하는 방법을 배웠다.이번에는 동적 쿼리와 성능 최적화를 통한 조회에 대해 배워보겠다. 순수 JPA 리포지토리와 QuerydslEntityManager와 Querydsl로 동일한 쿼리를 작성했을 때를 비교해보자!다음은 리스트 전체를 조회하는 "findAll()"과 username에 따른 결과를 조회하는 "findByUsername()"을 각각 순수 JPA와 Querydsl로 구현해놓은 것이다.public List findAll(){ return em.createQuery("select m from Member m", Member.class).getResultList();}public List findAll_Qu..
지난 시간에는 querydsl을 사용하기 위한 기본 문법들을 알아보았다.이번 섹션에는 배운 문법들을 토대로 결과를 효율적으로 반환하는 방법들을 알아보자!프로젝션과 결과 반환1. Basic프로젝션은 일전의 JPA에서도 나오는 용어로 조회를 할 때 "조회하고 싶은 대상을 지정"하는 기능을 의미한다.매번 entity 전체를 반환하는 것이 아니라 필요한 값만 가지고 오고 싶을 때 사용한다.프로젝션은 대상에 따라 조회하는 방식이 다르다.프로젝션 대상이 하나면, 타입을 명확히 지정할 수 있다.프로젝션 대상이 둘 이상이면, "Tuple"이나 "Dto"로 조회를 할 수 있다.❗️주의할 점❗️Tuple로 조회를 할 때, Repository 계층 내부에서 사용하는 것은 문제가 없지만, 그 이상의 레벨, 즉 controll..
Querydsl에 대한 초기 설정을 하였지만기초도 모르면 무용지물이다. 오늘은 querydsl을 사용하여 기본 문법에 대해 작성을 해보겠다.JPQL vs. Querydsl작성 전에 우리가 querydsl을 사용하는 이유에 대해 알아보자.JPQL을 사용해도 될텐데 왜 굳이 querydsl을 사용하는 것일까?사실 이 두 가지 프레임워크에는 차이점이 있다.JPQL과 달리 querydsl은 select절에서 문법이 틀려도 틀릴수가 없다.왜? 컴파일링을 통해 오류를 다 잡아내기 때문이다!! 그 덕에 우리는 편하게 코드를 작성하고 재빨리 오류를 찾아 수정할 수 있다."여러 Repository에서 JPAQueryFactory를 필드로 선언할 텐데 이에 대한 동시성 문제는 괜찮을까?" 라고 생각할 수 있다.하지만 괜찮..
🔥 Querydsl란?스프링 부트 + 스프링 데이터 JPA만으로 해결할 수 없는 복잡한 쿼리나 동적 쿼리들을 다루고 발생하는 문제들을 해결하기 위해 Querydsl을 사용한다!쿼리를 자바 코드로 작성하여 문법 오류를 컴파일 시점에 잡아준다!특징동적 쿼리 문제 해결쉬운 SQL 스타일 문법으로 쉽게 학습도 가능하다.🔥 Querydsl 초기 세팅이제 Querydsl를 사용하기 위해 필요한 기본 세팅들을 살펴보자!Querydsl은 Spring boot 프로젝트 생성 시 지원되는 라이브러리가 아니기 때문에 build.gradle에 직접 추가해 주어야 한다.//build.gradledependencies{ // Querydsl 추가 (Spring boot 3.x 이상) implementation 'com...