본문 바로가기

QueryDSL3

Kotlin + Spring Boot 3.1.3 + QueryDsl gradle 적용 spring boot 3 이상 버전 부터는 javax.persistence를 사용할 수 없다. 이유는 javax -> jakarta로 상호명이 바뀐건지 인수를 한건지.. (블로그에서 본거라 정확하지는 않다) 그래서 QueryDsl을 implementation할 때 jakarta를 명시해줘야 한다. - build.gradle.kts import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "3.1.3" id("io.spring.dependency-management") version "1.1.3" kotlin("jvm") version "1.8.22" kotlin("plugin... 2023. 9. 28.
Sql In, Not In 절 (JDBC JPA) QueryDsl 활용 where 문의 or 대신 in을 활용하려 한다.이유는 or는 인덱스 활용 불가능이고 in은 인덱스를 활용할 수 있어 in 절이 속도 면에서 우위가 있다. - sql in 절의 특징sql in ( “1”,”2”) 의 경우는 내부 콤마가 or가 되고.sql Not In (“1”, “2”)의 경우는 내부 콤마가 and가 된다. - Query dsl 특징where(000, 000) 의 경우는 내부 콤마가 and가 된다 - 실제 동적쿼리 적용 코드 @Override public List findByReceiverIdAndStatusOrStatus(String receiverId, AcceptStatus... acceptStatuses) { List kdKDGifts = queryFacto.. 2023. 1. 17.
QueryDsl 동적쿼리 사용 (SpringBoot, JPA) Tag 테이블에는 team_id가 외래키로 존재한다. 즉, 하나의 Team은 다수의 Tag를 가질 수 있다. -RequestBody (Rest API) -RequestTags @Data public class RequestTags { private List tags; } -TeamController /** * 태그로 전체 게시판 검색 */ @ApiOperation(value = "태그로 전체 게시판 조회 URL") @PostMapping("/api/tags") public ResponseTagsInTeam tagsInTeam( @RequestBody RequestTags requestTags, @PageableDefault(size = 10, sort = "createdDate", direction = .. 2022. 11. 25.