분류 전체보기
-
08. Querydsl ProjectionBackEnd/Querydsl 2021. 7. 27. 08:57
[전체소스코드] 1. 프로젝션이란? > 프로젝션이란 SELECT 대상 지정을 의미한다. 아래와 같이 프로젝션 대상이 하나인 경우 명확하게 타입을 지정할 수 있으나 프로젝션 대상이 둘 이상이면 튜플(Tuple)이나 DTO로 조회해야 한다. List result = queryFactory .select(member.username) .from(member) .fetch(); 2. Querydsl DTO 반환 > JPA에서 DTO를 조회할 때는 new 명령어로 package이름을 다 적어주어야 한다. (생성자 방식만 지원) em.createQuery("select new com.spring.querydsl.dto.MemberDto(m.username, m.age) from Member m", MemberDto..
-
07. Querydsl 상수, 문자 더하기BackEnd/Querydsl 2021. 7. 27. 08:37
[전체소스코드] // 상수더하기 Tuple result = queryFactory .select(member.username, Expressions.constant("A")) .from(member) .fetchFirst(); System.out.println(result); // result : [member1, A] // 문자더하기 String result = queryFactory .select(member.username.concat("_").concat(member.age.stringValue())) .from(member) .where(member.username.eq("member1")) .fetchOne(); System.out.println(result); // result : membe..
-
06. Querydsl CaseBackEnd/Querydsl 2021. 7. 27. 08:25
[전체소스코드] [Case1] List result = queryFactory .select(member.age .when(10).then("열살") .when(20).then("스무살") .otherwise("기타")) .from(member) .fetch(); [Case2] List result = queryFactory .select(new CaseBuilder() .when(member.age.between(0, 20)).then("0~20살") .when(member.age.between(21, 30)).then("21~30살") .otherwise("기타")) .from(member) .fetch(); [Case3] /** * orderBy에서 Case문 함께 사용하기 * Querydsl은 자..
-
05. Querydsl SubqueryBackEnd/Querydsl 2021. 7. 25. 17:38
> com.querydsl.jpa.JPAExpressions 사용 > querydsl은 FROM절 서브쿼리를 지원하지 않는다. (SELECT, WHERE절만 가능) [전체소스코드] 1. WHERE절 서브쿼리 @Test public void subQuery() throws Exception { QMember memberSub = new QMember("memberSub"); List result = queryFactory .selectFrom(member) /** 1) 나이가 가장 많은 회원 조회 .where(member.age.eq( JPAExpressions .select(memberSub.age.max()) .from(memberSub) )) */ /** 2) 나이가 평균 나이 이상인 회원 .wher..
-
SwaggerBackEnd/Spring Boot 2021. 7. 23. 09:26
1. Swagger ? > REST API를 설계, 구축, 문서화 및 사용하는데 도움이 될 수 있는 Open API Specification 기반 오픈 소스 도구 모음 > Springboot에 Swagger 적용 시 컨트롤러에 명시된 어노테이션을 기반으로 API문서를 자동으로 만들어준다. 2. Swagger 설정 1) pom.xml io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 2) SwaggerConfig.java > Springfox 참조 문서 package com.spring.swagger.config; import org.springframework.context.annotation.Bean; import..
-
04. Querydsl JoinBackEnd/Querydsl 2021. 7. 18. 17:19
1. 기본 조인 @Test public void join() throws Exception { List result = queryFactory .selectFrom(member) // join(조인 대상, 별칭으로 사용할 Q타입) /** * join() , innerJoin() : 내부 조인(inner join) * leftJoin() : left 외부 조인(left outer join) * rightJoin() : rigth 외부 조인(rigth outer join */ .join(member.team, team) .where(team.name.eq("teamA")) .fetch(); assertThat(result) .extracting("username") .containsExactly("membe..
-
03. Querydsl 기본 문법BackEnd/Querydsl 2021. 7. 17. 15:36
1. Querydsl 기본 문법 package com.spring.querydsl; import com.querydsl.jpa.impl.JPAQueryFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import com.spring.querydsl.entity.Member; import com.spring.querydsl.entity.QMember; import com.spring...