querydsl 3

spring boot 사이드 프로젝트[8] : 게시글 태그 필터링 (querydsl join)

이전글 https://yoonsys.tistory.com/9 spring boot 사이드 프로젝트[7] : Custom Repository 작성(사용자명, 글제목으로 게시글 검색) JpaRepository를 인터페이스에 상속하면 기본적인 메서드들 (ex. findbyid, findAll) 을 제공하지만, 디테일한 데이터를 쿼리하기 위해서는 내가 직접 작성할 필요가 있었다. 처음에는 다음과 같이 메서드 yoonsys.tistory.com 앞에서는 동적 쿼리를 이용해 사용자 이름, 게시글 이름으로 게시글들을 필터링하는 repository코드를 작성했다. 이번에는 복수의 태그를 이용해 게시글을 필터링해보려 한다. Entity 수정 여기서 중요한 점은 entity의 수정이었다. 게시글 하나에는 여러개의 기술 스..

Project/9uin 2023.06.14

spring boot 사이드 프로젝트[7] : 게시글 검색 기능 구현, 동적 쿼리 적용

JpaRepository를 인터페이스에 상속하면 기본적인 메서드들 (ex. findbyid, findAll) 을 제공하지만, 디테일한 데이터를 쿼리하기 위해서는 내가 직접 작성할 필요가 있었다. 처음에는 다음과 같이 메서드들을 나눠서 작성했었다. CustomPostRepositoryImpl.java @Override public Page findAllPost(Pageable pageable) { List content = jpaQueryFactory .selectFrom(qPost) .orderBy(qPost.createAt.desc()) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); JPAQuery count = getCo..

Project/9uin 2023.06.13

spring boot 사이드 프로젝트[6] : querydsl 설정 및 작성

이전에 만든 repository는 JpaRepositroy를 상속받았기에 기본적인 crud 쿼리 메서드들을 사용할 수 있다. 추가로 디테일한 쿼리를 원하면, 우리가 직접 쿼리 메서드를 작성해서 커스텀이 가능하다. 그렇기에 JPQL(Java Persistence Query Language)의 사용이 필연적이게 된다. 문제는 원하는 쿼리가 복잡해질수록 너무 쿼리문자열, 또는 메서드 이름의 길이가길어져 가독성이 떨어지고, 오류도 체크하기 어려워진다. 그렇기에 우리는 querydsl을 사용하기로 결정했다. querydsl 개요 querydsl은 SQL쿼리를 정적 타입을 이용해 생성하게 해주는 프레임워크이다. 이것을 이용하면 다음과 같은 장점이 있다. 1. 자동완성 기능을 사용할 수 있다. 2. 문법이 틀리면 오..

Project/9uin 2023.05.26