QueryDSL - 동적 쿼리, 벌크 연산, SQL Function 호출
·
Back-End/queryDSL
동적 쿼리BooleanBuilder 사용 @Test public void dynamicQuery_BooleanBuilder() { String usernameParam = "member1"; Integer ageParam = 10; List result = searchMember1(usernameParam, ageParam); Assertions.assertThat(result).hasSize(1); } private List searchMember1(String usernameCond, Integer ageCond) { BooleanBuilder builder = new BooleanBuilder(); if..
QueryDSL - 중급문법(프로젝션과 결과 반환 기본과 DTO, @QueryProjection)
·
Back-End/queryDSL
기본 프로젝션💡프로젝션이란?select대상을 지정하는 행위를 지칭한다.member의 username만 가져오는 경우 → 프로젝션이 1개member의 username과 age 2개를 가져오는 경우 → 프로젝션이 2개대상이 하나인 경우 @Test public void simpleProjection() { List result = queryFactory .select(member.username) .from(member) .fetch(); for (String s : result) { System.out.println("s = " + s); } }하나인 경..
QueryDSL - 기본문법(서브쿼리, Case, 상수와 문자 더하기)
·
Back-End/queryDSL
서브 쿼리JPAExcpressions를 이용해서 서브쿼리를 사용 할 수 있다.서브쿼리 eq 사용 예시 /* * 나이가 가장 많은 회원 조회 * */ @Test public void subQuery() { // 기존에 쓰던 static인 QMember객체 사용시 겹칠수 있어서 서브쿼리용 Qmember 생성 QMember memberSub = new QMember("memberSub"); List result = queryFactory.selectFrom(member) .where(member.age.eq( JPAExpressions ..
QueryDSL - 기본문법(집합, 조인)
·
Back-End/queryDSL
집합 함수 @Test public void aggregation() { List result = queryFactory .select( member.count(), member.age.sum(), member.age.avg(), member.age.max(), member.age.min() ) .from(member) .fetch(); Tuple tuple = ..
QueryDSL - 기본 문법(검색, 결과, 정렬, 페이징)
·
Back-End/queryDSL
QueryDSL - 기본 문법(검색, 결과, 정렬, 페이징)검색 조건 쿼리기본 검색 쿼리@Testpublic void search() { Member findMember = queryFactory .selectFrom(member) .where(member.username.eq("member1").and(member.age.eq(10))) .fetchOne(); assertThat(findMember.getUsername()).isEqualTo("member1");}select from 을 selectFrom으로 합칠수 있음JPQL이 제공하는 모든 검색 조건 제공member.username.eq("member1") // username..
Window 환경에서 Redis 설치하기
·
Back-End/Redis
🧠 개요안녕하세요. 오늘은 Windows 환경에서 Redis를 설치하는 방법에 대해 알아보겠습니다.Redis는 높은 성능과 유연한 데이터 구조를 제공하여, 다양한 백엔드 환경에서 핵심 요소로 활용되고 있습니다.📌 Redis란?Redis(REmote DIctionary Server)는 오픈 소스 기반의 인메모리 데이터 저장소로, Key-Value 구조를 기반으로 데이터를 빠르게 읽고 쓰는 것이 특징입니다.✅ Redis의 주요 특징메모리 기반 저장소로 빠른 읽기/쓰기 속도 제공메모리의 데이터를 디스크에 주기적 백업(RDB, AOF) 가능다양한 데이터 구조 지원: 리스트, 해시, 셋, 정렬된 셋 등풍부한 명령어 지원으로 유연한 데이터 조작 가능다수의 명령어를 하나의 트랜잭션으로 묶어 일관성 보장 가능🛠 ..
JPQL 과 QueryDSL 문법 비교 및 Q-Type활용
·
Back-End/queryDSL
https://www.inflearn.com/course/querydsl-%EC%8B%A4%EC%A0%84/dashboard 실전! Querydsl - 인프런 | 강의Querydsl의 기초부터 실무 활용까지, 한번에 해결해보세요!, 복잡한 쿼리, 동적 쿼리는 이제 안녕! Querydsl로 자바 백엔드 기술을 단단하게. 🚩 본 강의는 로드맵 과정입니다. 본 강의는 자바 백엔www.inflearn.com 테스트 초기 설정@SpringBootTest@Transactionalpublic class QuerydslBasicTest { @Autowired EntityManager em; @BeforeEach public void before() { queryFactory = ne..
데이터 스프링 JPA - 쿼리 메소드 기능(벌크성 수정 쿼리, @EntityGraph, JPA Hint & Lock)
·
Back-End/Spring Data JPA
실전! 스프링 데이터 JPA - 인프런 | 강의 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼 리포지토리에 구현 클래스 없이 인터페이스만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다. www.inflearn.com 벌크성 수정 쿼리 벌크성 쿼리는 대량의 엔티티 속성을 수정해야 할 때, 사용하는 기능이다. ex) 월급이 300 이상인 사원들의 연봉 10% 인상을 DB에 반영 등 일반 JPA 벌크성 수정 쿼리 public int buikAgePlus(int age) { return em.createQuery("update Member m set m.age = m.age + 1 where m.age >= ..
스프링 데이터 JPA - 쿼리 메소드 기능(페이징과 정렬)
·
Back-End/Spring Data JPA
실전! 스프링 데이터 JPA - 인프런 | 강의 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼 리포지토리에 구현 클래스 없이 인터페이스만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다. www.inflearn.com 순수 JPA 페이징과 정렬 JPA에서 페이징을 어떻게 수행하는지 알아 보자. JPA 페이징 리포지토리 코드 public List findByPage(int age, int offset, int limit) { return em.createQuery("select m from Member m where m.age = :age order by m.username desc") .setParame..
스프링 데이터 JPA - 쿼리 메소드 기능(쿼리 메소드 이름, @NamedQuery, @Query)
·
Back-End/Spring Data JPA
실전! 스프링 데이터 JPA - 인프런 | 강의 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼 리포지토리에 구현 클래스 없이 인터페이스만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다. www.inflearn.com 스프링 데이터 JPA는 메소드 이름만으로 쿼리를 자동으로 생성해주는 쿼리 메소드(Query Method) 기능을 제공합니다. 이를 사용하면 별도의 쿼리문 작성 없이도 간단하게 데이터를 조회할 수 있습니다. 쿼리 메소드 기능은 다양한 형태의 메소드를 지원하며, 이번 글에서는 몇 가지 예시를 살펴보겠습니다. 메소드 이름으로 쿼리 생성 메소드의 이름을 분석해서 JPQL 쿼리를 실행시켜 준다. 이..