Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 그리디
- JPQL
- pointcut
- transaction
- java
- QueryDSL
- 백준
- 알고리즘
- Proxy
- Exception
- Greedy
- 스프링 핵심 원리
- Thymeleaf
- 자바
- 김영한
- Android
- jpa
- JDBC
- 스프링
- http
- 스프링 핵심 기능
- spring
- AOP
- Servlet
- 인프런
- Spring Boot
- kotlin
- springdatajpa
- db
- SpringBoot
Archives
- Today
- Total
개발자되기 프로젝트
기본 Q-Type 본문
1. Q 클래스 인스턴스 생성 방법
- 별칭 직접 지정
QMember qMember = new QMember("m"); //별칭 직접 지정
- 기본 인스턴스 사용
QMember qMember = QMember.member; //기본 인스턴스 사용
- 기본 인스턴스를 사용하면 QMember를 staic으로 등록해서 코드 줄일 수 도 있음
package study.querydsl;
import com.querydsl.jpa.impl.JPAQueryFactory;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.transaction.annotation.Transactional;
import study.querydsl.entity.Member;
////////////////////////////////////
import study.querydsl.entity.QMember;
////////////////////////////////////
import study.querydsl.entity.Team;
import javax.persistence.EntityManager;
import static org.assertj.core.api.Assertions.*;
import static study.querydsl.entity.QMember.*;
@SpringBootTest
@Transactional
public class QuerydslBasicTest {
@Autowired
EntityManager em;
JPAQueryFactory queryFactory;
@BeforeEach
public void before(){
queryFactory = new JPAQueryFactory(em);
Team teamA = new Team("teamA");
Team teamB = new Team("teamB");
em.persist(teamA);
em.persist(teamB);
Member member1 = new Member("member1", 10, teamA);
Member member2 = new Member("member2", 20, teamA);
Member member3 = new Member("member3", 30, teamB);
Member member4 = new Member("member4", 40, teamB);
em.persist(member1);
em.persist(member2);
em.persist(member3);
em.persist(member4);
}
@Test
public void startQuerydsl(){
//변수명에 별칭 지정. 사실 크게 중요하지 않음 ㅋㅋ 안씀 ㅋㅋㅋ
//QMember m = new QMember("m"); //어떤 QMember인지 구분
//QMember m = QMember.member;
Member findMember = queryFactory
.select(member)
.from(member)
.where(member.username.eq("member1"))
.fetchOne();
assertThat(findMember.getUsername()).isEqualTo("member1");
}
}
- 오 가독성이 더 좋아짐 ㅋㅋㅋ 이렇게 쓰자.
- 어 근데 문제가 있다. Querydsl이 만들어주는 JPQL을 볼 수가 없다ㅋㅋㅋ
- 옵션을 추가해 주자. user_sql_comments: true
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
# show_sql: true
format_sql: true
use_sql_comments: true
요렇게 확인이 가능하다.
2. GitHub : 210901 Q-Type
'인프런 > [인프런] QueryDsl' 카테고리의 다른 글
결과 조회 (0) | 2021.09.01 |
---|---|
검색조건 쿼리 (0) | 2021.09.01 |
Querydsl vs JPQL (0) | 2021.09.01 |
예제 도메인 모델 (0) | 2021.09.01 |
Querydsl 설정 및 검증 (0) | 2021.09.01 |
Comments