본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: f39b053) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout f39b053 ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 스터디 검색 기능을 구현합니다. 키워드를 입력 받아 스터디를 검색하는데, 스터디 제목, 관심사, 도시 이름이 키워드에 해당합니다. 로그인하지 않고도 사용할 수 있어야 합니다. 검색으로 보여질 내용은 아래와 같습니다. 검색 키워드..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: dc5c662) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout dc5c662 ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 스터디 생성 후 공개할 때 알림을 전송합니다. 알림 받을 대상: 스터디 주제와 지역에 매칭되는 사용자 알림 제목: 스터디 이름 알림 메시지: 스터디 짧은 소개 서비스 수정 지난 번에 스터디가 생성될 때 이벤트를 발생시켰던 부분을..
본 포스팅은 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 참고하여 작성하였습니다. 소스 코드는 여기 있습니다. (commit hash: 37f3309) > git clone https://github.com/lcalmsky/spring-boot-app.git > git checkout 37f3309 ℹ️ squash merge를 사용해 기존 branch를 삭제하기로 하여 앞으로는 commit hash로 포스팅 시점의 소스 코드를 공유할 예정입니다. Overview 앞으로 사용하게 될 querydsl을 설정합니다. build.gradle 수정 plugins { // 생략 id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10&..
이번에 5.0.0 버전이 release 되었는데 어떤 변경사항이 있었는지 살펴보겠습니다. 😀 먼저 가장 큰 변화는 자바 8버전 미만은 이제 지원하지 않는 것 인데요, 자바 7버전 이하를 사용하는 분들은 4.x.x 버전을 계속 사용해야 합니다. 그리고 joda-time과 google의 guava 런타임 dependency를 제외하였습니다. 이번 업데이트는 약 2년만에 이루어진 메이저 업데이트로 그동안 github에 남겨진 이슈 중 비중있는 것들 위주로 처리했다고 합니다. 큼지막 한 것들은 간단히 소개했으니 내부 기능 변화를 자세히 살펴보겠습니다. 새로운 기능들 Java 8 소스 레벨을 대상으로 성능과 코드 개선 Stream를 반환하는 Fetchable#stream() 추가 try-with-resources..
모든 소스 코드는 여기 있습니다. 스프링 데이터에서 제공하는 Querydsl 기능을 소개합니다. Repository 인터페이스 지원: QuerydslPredicateExecutor 공식 문서 참조 스프링 데이터는 QuerydslPredicateExecutor라는 인터페이스를 제공합니다. public interface QuerydslPredicateExecutor { Optional findById(Predicate predicate); // (1) Iterable findAll(Predicate predicate); // (2) long count(Predicate predicate); // (3) boolean exists(Predicate predicate); // (4) // … more funct..
모든 소스 코드는 여기 있습니다. SQL 함수는 Dialect로 등록한 언어에 대해서만 사용할 수 있습니다. 현재 프로젝트에서는 H2 데이터베이스를 사용하므로 H2Dialect에 명시된 함수들만 사용할 수 있습니다. H2Dialect.java /* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or . */ package org.hibernate.dialect; import java.sql.SQLException; import java...
모든 소스 코드는 여기 있습니다. 이전 포스팅에 이어서 Querydsl의 기본 문법을 소개합니다. 기본 Join 첫 번 째 파라미터에 join할 대상, 두 번 째 파라미터에 별칭으로 사용할 Q Type을 지정합니다. package io.lcalmsky.querydsl.domain; import com.querydsl.jpa.impl.JPAQueryFactory; 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.SpringBoot..
모든 소스 코드는 여기 있습니다. 이전 포스팅에 이어서 Querydsl의 기본 문법을 소개합니다. 정렬 JPAQueryFactory에서 orderBy 메서드를 호출해 정렬 기능을 사용합니다. orderBy의 파라미터로 정렬할 항목들을 전달하는데 아래 테스트 코드처럼 작성하면 됩니다. package io.lcalmsky.querydsl.domain; import com.querydsl.jpa.impl.JPAQueryFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.spring..
모든 소스 코드는 여기 있습니다. Querydsl의 기본 문법을 소개합니다. Q Type 이전 포스팅에서 사용한 Entity들을 compileQuerydsl을 이용해 모두 Q Type으로 변환하였습니다. (자세한 내용은 이전 포스팅 참고) Q Type 객체를 사용하는 방법은 이전 포스팅에서도 소개했지만 두 가지가 있습니다. QPlayer player = new QPlayer("p"); // (1) QPlayer player = Qplayer.player; // (2) (1) alias를 별도로 지정하고 new를 이용해 객체를 생성합니다. (2) QPlayer클래스에 static으로 선언된 객체를 가져와 사용합니다. alias의 기본 값은 Entity 이름 입니다. (Player인 경우 player) 굳이..
스프링 부트 2.6 이상은 아래 글을 참고해주세요. 2022.08.23 - [Querydsl] - 스프링부트 2.6 이상 버전에서 Querydsl 설정 방법 모든 소스 코드는 여기 있습니다. Querydsl을 사용하기 위해 프로젝트 설정부터 차근차근 달려봅시다! 먼저 자바 버전은 11, 스프링 버전은 2.5.2를 선택하였고 gradle 프로젝트로 생성하여 아래 네 가지 dependency를 설정하였습니다. spring-boot-starter-web spring-boot-starter-data-jpa lombok h2 build.gradle 위와 같이 설정하셨다면 build.gradle 파일이 아래 처럼 작성되었을텐데요, plugins { id 'org.springframework.boot' version..
- Total
- Today
- Yesterday
- Jackson
- 스프링 부트 애플리케이션
- 스프링부트
- JSON
- JPA
- Java
- Spring Boot JPA
- @ManyToOne
- 스프링 부트 튜토리얼
- Spring Boot Tutorial
- Spring Data JPA
- proto3
- r
- 알고리즘
- spring boot application
- 스프링 부트 회원 가입
- intellij
- 헥사고날 아키텍처
- 함께 자라기 후기
- Linux
- 스프링 데이터 jpa
- gRPC
- leetcode
- 함께 자라기
- spring boot app
- spring boot jwt
- Spring Boot
- 스프링 부트
- 클린 아키텍처
- QueryDSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |