Category: QueryDSL

0

JPA JPQL vs Querydsl

목차 Post not found: jpa/querydsl/querydsl-15 Post not found: jpa/querydsl/querydsl-14 QueryDSL - 동적 쿼리와 성능 최적화 조회 QueryDSL - 순수 JPA 리포지토리와 Querydsl QueryDSL - SQL Function 호출하기 Post not found: jpa/querydsl/querydsl-10 Post not found: jpa/querydsl/querydsl-09 Post not found: jpa/querydsl/querydsl-08 QueryDSL - 조인 QueryDSL - 집계 QueryDSL - 결과 조회 QueryDSL - 검색 조건 쿼리 Post not found: jpa/querydsl/querydsl-03 JPA JPQL vs Querydsl QueryDSL 시작하기 JPQL@Testpublic void startJPQL(){ // member1 을 찾아라 Member findByJPQL = em.createQuery("select m from Member m where m.username = :username", Member.class) .setParameter("username", "member1") .getSingleResult(); assertThat(findByJPQL.getUsername()).isEqualTo("member1");} Querydsl@Testpublic void startQuerydsl(){ JPAQueryFactory queryFactory = new JPAQueryFactory(em); QMember qMember = new QMember("m"); Member findMember = queryFactory .select(qMember) .from(qMember) .where(qMember.username.eq("member1")) .fetchOne(); assertThat(findMember.getUsername()).isEqualTo("member1");} Querydsl 은 기본적으로 parameter binding 시 preparedStatement 의 parameter binding 을 사용해 SQL injection 공격으로부터 안전하다. select member0_.member_id as member_i1_1_, member0_.age as age2_1_, member0_.team_id as team_id4_1_, member0_.username as username3_1_ from member member0_ where member0_.username=? jpql 은 런타임 오류가 발생하나 querydsl 은 컴파일시 에러가 발생하게 된다.

0

QueryDSL 시작하기

목차 QueryDSL - QueryDsl 페이징 사용하기 QueryDSL - 사용자 정의 Repository QueryDSL - 동적 쿼리와 성능 최적화 조회 QueryDSL - 순수 JPA 리포지토리와 Querydsl QueryDSL - SQL Function 호출하기 QueryDSL - 수정, 삭제 벌크 연산 QueryDSL - 동적 쿼리 QueryDSL - 프로젝션과 결과 반환 QueryDSL - 조인 QueryDSL - 집계 QueryDSL - 결과 조회 QueryDSL - 검색 조건 쿼리 QueryDSL - Q-Type 활용 QueryDSL - JPA JPQL vs JPA QueryDSL QueryDSL 시작하기 QueryDSL 이란? QueryDSL 은 Query Domain Specific Language 의 약자로 쿼리를 코드로 작성할 수 있도록 해주는 쿼리 빌더 프레임워크 QueryDSL은 자바코드로 쿼리를 작성할 수 있으며, JPA, JDO, Hibernate, MongoDB, SQL, Lucene 등 다양한 데이터베이스를 지원합니다. QueryDSL은 코드 자동 완성 기능을 제공하므로 오타나 잘못된 쿼리를 작성하는 일을 방지하며, 런타임 오류를 방지할 수 있습니다. Plugin 추가plugins { id 'org.springframework.boot' version ‘2.2.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java'} 라이브러리 추가//querydsl 추가implementation 'com.querydsl:querydsl-jpa'