반응형

JPQL 10

[JPA] JPA를 적용하며... mysql 함수 2번 호출되는 문제

왜 querydsl로 조회할때 mysql 함수가 두 번 발생하는 문제가 나타났습니다. 먼저 Spring Data JPA를 사용하면서 왜 mysql 함수를 썼어야 했는지부터 설명드리겠습니다. 진행중인 프로젝트는 mybatis를 사용했었습니다. 그리고 새로운 버전으로 업그레이드하면서 JPA를 도입했고 기존 mapper 쿼리를 걷어내면서 작업을 진행하고 있습니다. 그래서 mybatis를 걷어내기 전까지는 mysql를 함수를 사용하기로 하였습니다. ( 관리포인트를 2개로 나누는 것은 좋지 않다고 판단 ) 증상 querydsl로 아래 소스처럼 mysql function을 이용하여 조회하는 로직이 있습니다. 그런데 function이 두번 호출되고 있습니다. public StoreVo findByName(String..

Develop/spring-data 2020.12.06

Spring Data JPA, Querydsl 로깅처리. p6spy 원하는 로그만 출력하기

바로 여기로 오셨다면 이전 글을 참조해주세요. 왜 p6spy를 선택했는지와 분석하는 이유에 대해서 정리해놓았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄! jpa, querydsl을 사용했을 때 불편한 점과 해결 방법(로깅) 및 로깅의 종류에 간략하게 알아보았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 2탄! p6spy 적용방법을 알아보았습니다. Spring Data JPA, Querydsl 로깅처리. p6spy pretty하게 설정하기 p6spy 로깅 출력을 pretty 적용 이번 글에서는 p6spy를 사용하는데에 편리한 설정들이 뭐가 있는지 알아보는 과..

Develop/spring-data 2020.11.16

Spring Data JPA, Querydsl 로깅처리. p6spy pretty하게 설정하기

바로 여기로 오셨다면 이전 글을 참조해주세요. 왜 p6spy를 선택했는지와 분석하는 이유에 대해서 정리해놓았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄! jpa, querydsl을 사용했을 때 불편한 점과 해결 방법(로깅) 및 로깅의 종류에 간략하게 알아보았습니다. jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 2탄! p6spy 적용방법을 알아보았습니다. 이번 글에서는 p6spy를 사용하는데에 편리한 설정들이 뭐가 있는지 알아보는 과정과 적용하는 것까지 정리하겠습니다. 작성된 글의 소스 코드는 github에 올려두었습니다. JPA, Querydsl 설정 방법은 아래..

Develop/spring-data 2020.11.13

jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 2탄!

이전 글 ( jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄! ) 에서 jpa, querydsl을 사용했을 때 불편한 점과 해결 방법(로깅) 및 로깅의 종류에 간략하게 알아보았습니다. 이번 글에서는 최종적으로 선택된 로깅 방법인 p6spy에 대해서 정리하겠습니다. 작성된 글의 소스 코드는 github에 올려두었습니다. JPA, Querydsl 설정 방법은 아래 링크를 참조해주시면 됩니다! JPA에 대해서 궁금하시면? JPA란? JPA 시작 그리고 예제 JPA 테스트 코드로 알아보자! Querydsl에 대해서 궁금하시면? Querydsl란? Querydsl 사용해보자. ( 설정편 ) Querydsl plugin 실행방법 Querydsl 사용..

Develop/spring-data 2020.11.12

jpa, querydsl 적용 시 로깅 비교. querydsl로 작성한 쿼리 DBMS에서 쉽게 돌리는 방법. 1탄!

jpa, querydsl가 type-safe로 장점이 뚜렸하였지만 단점도 존재하였습니다. 이 글에선 다양한 쿼리 로그 방법에 대해서 알아보겠습니다. 각 로그방식의 설명과 불편한 점을 다루도록 하겠습니다. 작성된 글의 소스 코드는 github에 올려두었습니다. JPA, Querydsl 설정 방법은 아래 링크를 참조해주시면 됩니다! JPA에 대해서 궁금하시면? JPA란? JPA 시작 그리고 예제 JPA 테스트 코드로 알아보자! Querydsl에 대해서 궁금하시면? Querydsl란? Querydsl 사용해보자. ( 설정편 ) Querydsl plugin 실행방법 Querydsl 사용해보자. ( Entity 관계 매핑 편, 테스트 코드 포함 ) Querydsl 사용해보자. ( Entity 관계 매핑 X편, 테..

Develop/spring-data 2020.11.10

Spring batch에 Spring Data JPA 기반 Querydsl을 적용해보자! (QuerydlsPagingItemReader)

이번 글에서는 Spring batch에 QuerydslPagingItemReader를 생성하여 적용시켜 테스트까지 해보는 과정을 정리하겠습니다. 우아한 형제들의 이동욱님의 세미나와 티스토리를 엄청나게 참조해서 만들었습니다. 모든 소스는 github에 있습니다. SpringBatch에 대해서 궁금하시면? Spring Batch 란? Spring batch 스케줄 생성! [Jenkins] Spring Batch Jenkins Schedule 사용 시 서비스 관리 방법 JPA에 대해서 궁금하시면? JPA란? JPA 시작 그리고 예제 JPA 테스트 코드로 알아보자! Querydsl에 대해서 궁금하시면? Querydsl란? Querydsl 사용해보자. ( 설정편 ) Querydsl plugin 실행방법 Query..

Spring Data JPA 기반 Querydsl 사용해보자. ( Entity 관계 매핑 X편, 테스트 코드 포함 )

이전글 Querydsl 사용해보자. ( 설정편 )에서 설정하는 방법을 알아보았습니다. Entity 관계 매핑되있는 경우는Querydsl 사용해보자. ( Entity 관계 매핑 편, 테스트 코드 포함 )참조해주세요. 이번 글에서는 Querydsl의 버전업으로 Entity 관계 매핑되어있지 않아도 사용가능해졌기 때문에 Querydsl 사용편에 대해서 알아봅시다. 모든 소스는 github에 올려두었습니다. Entity package com.example.querydsl.staff.entity; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.pers..

Develop/spring-data 2020.11.08

Spring Data JPA 기반 Querydsl 사용해보자. ( Entity 관계 매핑 편, 테스트 코드 포함 )

이전 글에서 Querydsl 설정하는 방법에 대해서 알아보았습니다. 이 글은 Entity 관계 매핑이 되어 있는 경우 Querydsl 사용법에 대해서 알아보겠습니다. 모든 소스는 github에 올려두었습니다.  Entity package com.example.queyrdsl.entity; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Getter @Entity @NoArgsConstructor(access = AccessL..

Develop/spring-data 2020.11.08

Spring Data JPA 기반 Querydsl 사용해보자. ( 설정편 )

지난글 JPA 프로젝트에 이어서 Querydsl까지 진행해보자! 이 글에서 작성된 모든 소스는 github에 올려두었습니다. Querydsl 세팅은 허들이 있다고 생각한다. 최대한 자세히 정리해보도록 노력할 것입니다. Gradle ( version 6.6 ) querydsl은 gradle 버전에 따라서 세팅하는 값이 다릅니다. 이 글에서는 version 5.0 이상일 기준으로 작성하겠습니다. plugins { id 'org.springframework.boot' version '2.3.5.RELEASE' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java' id 'com.ewerk.gradle.plugins.querydsl' ve..

Develop/spring-data 2020.11.07

Spring Data JPA 기반 Querydsl란?

이제서야 적용해본다 Querydsl!! 기존 프로젝트에서는 mybatis를 사용했다. mybatis는 Mapper.java, mapper.xml 파일을 만들어 namespace로 연결하여 사용하는 방식이었다. 개발자1로써 크게 불편함을 느끼지 않고 쓰고 있었다. 그런데 Querydsl이 나오고 신세계를 경험했다. Querydsl 장점 대표적으로 type-safe이다. 자세한 내용은 밑에서 다루겠습니다. 잘못된 쿼리를 xml에 작성 후 build해도 에러는 발생하지 않는다. 실제 쿼리를 호출해야 그제서야 에러가 발생한다. 이런 문제를 사전에 방지 할 수 있다. SELECT * FROM store -- xml에서는 에러 발생하지 않는다. java의 enum, constant를 이용해 type이 의미하는 바를..

Develop/spring-data 2020.11.06
728x90
반응형