Querydsl을 사용하게 되면 상황에 따라 다르게 적용을 할 수 있는 동적쿼리를 손쉽게 짤 수 있습니다. 동적쿼리를 짜는 방식은 대표적으로 두 가지가 있습니다. 지금부터 알아보도록 하겠습니다. BooleanBuilder 사용 방식 BooleanBuilder란 아래와 같이 BooleanBuilder 생성자를 생성 후, 아래와 같이 if문을 통해서 각 데이터의 조건에 맞게 코드를 작성하는 것입니다. 아래 코드와 같이 데이터가 많지 않아 작성해야 할 if문이 많지 않다면 쿼리문이 깔끔하게 보이겠지만, 데이터가 많아진다면 추가해야 할 조건문이 많아져 쿼리문을 추적하기 어려울 것입니다. public List searchByBuilder(MemberSearchCondition condition) { Boolean..
Querydsl 5.0.0 버전 세팅 방법 Querydsl 초기 세팅을 해주던 도중 버전이 맞지 않아 기존의 세팅 방식을 적용하면 에러가 발생하였다. 현재 나의 프로젝트 버전은 'org.springframework.boot-2.7.14', 'Gradle-8.2.1'이고 Querydsl은 5.0.0 버전을 사용하고자 하였다. build.gradle 파일 세팅 //querydsl 버전 정보 추가 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'org.springframework.boot' version '2.7.14' id 'io.spring.dependency-management' version '1.1.2' //query..
BaseEntity란? Spring Boot 내에서 코드를 작성하다 보면 정보가 중복되는 경우가 종종 발생합니다. 이러한 경우를 손쉽게 해결해 주는 방법이 바로 BaseEntity입니다. 아래 코드를 보면 Student와 Professor 클래스 내 정보를 살펴보면, createdBy와 createdDate에서 공통 정보가 발생합니다. 물론 하나하나씩 별도로 작성해 주어도 문제는 없지만, 중복된 것처럼 보일 수 있기에 이를 한 곳에 공통으로 매핑해 주는 것이 좋습니다. @Entity public class Student { @Id @GeneratedValue private Long id; private String name; // 공통 컬럼 private String createdBy; private L..
Spring Boot에서 데이터 조회 API를 제작하는 방법은 대표적으로 두 가지가 있다. 1. http://localhost:8080/board?id=1 2. http://localhost:8080/board/id/1 예시로 보다시피, 둘 다 같은 데이터를 받아오지만 전반적으로 봤을 때 가장 큰 차이점은 쿼리스트링의 사용 여부라고 볼 수 있다. 아래부터는 둘의 차이를 좀 더 자세하게 분석을 해보도록 하겠다. @RequestParam 이란? @RequestParam의 파라미터 종류는 4가지이다. defaultValue : 값을 설정하지 않았을 때 설정할 기본값 name : 바인딩할 파라미터의 이름 value : name의 별칭 required : 필수 값 사용 여부 설정 (무조건 설정을 해주어야 함) @..