반응형
반응형
Introduction 예전에 QueryDSL 를 통해 데이터를 조회할 때 바로 DTO 객체로 응답 받는 방법을 포스트(https://mokggang.tistory.com/68) 했었는데. 자식 객체 기준에서의 부모 객체를 조회하는(Object in Object) 것 말고, 부모 객체 기준으로 자식객체를 조회하는(ObjectList in Object) 데이터가 필요한 경우 '일대다 관계의 부모와 자식 엔티티를 Join 으로 모두 조회 할 경우에도 DTO 객체로 응답 받아서 사용할 순 없을까 ?' jpaQueryFactory. select( team.id, team.name )). from(team). join(team.memberList, member) fetch(); 위와 같이 TeamDTO 객체 ..
Introduction 서비스 로직에서 특정 데이터를 업데이트, 즉 변경 하기 위해서 JPA 를 사용할 경우 일반적으로 DirtyChecking 을 통해 업데이트를 진행한다. 하지만 다수의 데이터를 일괄적으로 변경을 해야하는 경우에는 다수의 조회 및 업데이트 쿼리가 발생하기 때문에 성능적으로 좋지 않다. 그런 경우 JPQL 을 통해 업데이트 쿼리를 직접 작성하여 Bulk 업데이트를 진행하기도 하는데. Querydsl를 통해 문자열로 이루어진 JPQL 업데이트 쿼리의 Set 파라미터를 동적으로 업데이트를 진행할 수 있다. Bulk update 1.JPQL JPQL을 통한 기본적은 Bulk Update는 단순한 문자열 형태로 진행된다. 아래 코드는 Repository에서 나이와 유저아이디로 해당 유저들의 ..
Introduction 특정 웹사이트를 보면 검색조건들이 존재한다. 회원검색을 예를 들자면, 회원 목록을 조회할 경우 여러가지 검색 옵션들을 지정해 리스트를 보여준다. 1. 이름 검색 2. 이름 + 나이 검색 3. 이름 + 나이 + 성별 검색 이렇게 여러가지 조건에 따라 그에 부합하는 회원 목록을 보여주기 위해서 해당 회원 조회 쿼리에 조건들을 추가한다. 단순히 Spring Data Jpa 만 사용할 경우에는 인터페이스를 통해 조건에 맞는 함수를 추가적으로 만들어 주어야한다. 하지만 검색조건들이 다양한 만큼 조건에 해당하는 함수를 모두 만드는 일은 쉽지 않다. 이를 QueryDsl 에서 동적으로 검색조건을 동작할 수 있게 지원한다. 조건 검색 1. Spring Data Jpa 인터페이스를 활용한 조..
Introduction 이번에 Redis를 공부하면서 알게된 점들을 간략하게 정리해보려고 합니다. Redis란 무엇이며, 어떤 상황에 어떻게 쓰이는지, 어떠한 자료구조를 가지고 있고, 어떤 기능들을 가지고 있는지 요점을 정리해 Redis란 무엇인지 알 수 있는 시간이 되었으면 합니다. Redis Redis 란 NoSQL의 한 종류로써 데이터를 쓰고, 읽는 데이터베이스입니다. NoSQL 이기 때문에 스키마가 존재하지 않고, 특정한 자료구조의 형태로 쓰고, 읽는 것이 가능합니다. 일반적인데이터베이스와 다른 점이라면 Redis 는 데이터들을 직접 디스크에 write 하지 않습니다. 메모리에 데이터를 적재하고, 메모리에 있는 데이터를 사용하는 In-Memory 구조를 갖습니다. 그렇기 때문에 빠른 속도로 데이..