일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자동
- 클러스터
- Redis
- 자바
- 로그인
- gradle
- 젠킨스
- login
- Cluster
- vue
- Jenkins
- config
- SpringBoot
- Kafka
- 레디스
- Mac
- Docker
- 간단
- fastcampus
- Zeppelin
- java
- spring
- ec2
- EMR
- 예제
- redash
- 머신러닝
- hive
- 설정
- aws
- Today
- Total
목록전체 글 (193)
코알못
이번 시간에는 기본 문법 중 fetchjoin 사용 방법 , cese, 상수문자 더하는 방법을 알아보자! 우선 테스트를 위해 테스트 코드가 실행 되기전 초기 데이터 셋팅하는 코드를 작성 한다. @BeforeEach public void testEntity(){ query = new JPAQueryFactory(em); Team teamA = Team.builder() .name("teamA") .build(); Team teamB = Team.builder() .name("teamB") .build(); em.persist(teamA); em.persist(teamB); Member member1 = Member.builder() .username("member1") .age(10) .team(teamA..
이전 작성글에 이어서 진행해보도록 하자! 이번 시간에는 querydsl 기본 문법에 대해 알아볼예정이다! 우선 기본 데이터 생성하는 부분을 @BeforeEach 어노테이션을 달아서 테스트 코드 실행전에 해당 코드가 실행 되도록 하며 JPAQueryFactory를 상단에 정의 하여 다른 테스트 코드에서도 사용 할 수 있도록 한다. package study.querydsl.entity; import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.ju..
Spring Data JPA 에서는 복잡한 쿼리 작성시 @Query 어노테이션을 이용하여 직접 문자열로 쿼리 작성 하였으며 동적 쿼리 작성시 JPA Specification 기능을 이용하여 작성 해야 하나 난이도도 있고 조건에 따른 메소드를 계속적으로 만들어야 한다. 이런 복잡한 쿼리나 동적 쿼리를 쉽게 작성할 수 있는것이 바로 QueryDSL 이며 다른 장점으로는 자바 코드이기에 문법 오류를 컴파일 시점에서 알 수 있다. 이제 실제로 장점을 차근차근 이용해보면서 알아보도록 하자! 우선 프로젝트를 생성해보자! 해당 사이트로 들어가 프로젝트를 생성한다. https://start.spring.io/ 위와 같이 선택하고 Dependncies의 ADD를 눌러 필요한 라이브러리를 추가하고 빨간 박스를 클릭하여 프..
Jpa 관련 어노테이션 중 알고 가야하는 어노테이션에 대해 정리 하였다. 어노테이션 설명 @Repository JPA 예외시 JPA Exception이 아닌 스프링이 정의한 공통 예외로 나가 공통 예외 처리가 가능하다. @Transactional 트랜젝션 적용으로 JPA 의 모든 변경 동작은 트랜젝션 안에서 동작해야하여 꼭 @Transactional 을 사용하는 클래스에서 선언해야 동작 하나 Spring Data JPA는 레파지토리 내에서 @Transactional 처리를 했기에 없어도 처리 가능하다. @Transactional(readOnly = true) 읽기 전용이기에 flush를 안해서 성능 향상 이점이 있다. 이제 Save 에 대해서 알아보자! Spring Data Jpa Save 로직을 한번 ..
우리는 아래 확장 기능을 알아볼예정이다! 사용자 정의 repository Auditing web domain class converter web paging/sort 사용자 정의 repository 만약에 Spring Data JPA repository를 사용하다가 쿼리 메소드 기능 이외에 다른 기능이 필요하다면 JpaRepository interface를 모두 상속받아 구현해야한다. 모두 구현하지 않고 확장 할 수 있는 기능을 Spring Data JPA에서 제공한다. 확장할 코드를 구현할 인터페이스를 다중 상속하는 방식으로 명칭 규칙을 지키면 알아서 Spring Data JPA 가 해당 인터페이스를 상속하고 명칭이 맞는 클래스를 찾아 확장한 메소드를 실행한다. 우선 실제 확장할 코드가 들어갈 클래스명..
Spring Data JPA 의 쿼리 메소드, JPQL, Paging, 벌크성 쿼리 제출 방법, @EntityGraph, JPQL fetch join, JPA Hint, Lock 대해서 알아보자! 우선 쿼리를 제출하는 방법은 세가지가 있다. 메소드 이름으로 쿼리 생성 JPA Named Query JPQL 예시를 보며 차근차근 보자! 1. 메소드 이름으로 쿼리 생성 @Repository public class MemberJpaRepository { @PersistenceContext private EntityManager em; public List findByUsernameAndAgeGreaterThan(String username, int age){ return em.createQuery("select..
이번에는 스프링 Data JPA를 이용하여 CRUD를 실습 해보도록 하자! 그 전에 스프링 Data JPA 가 주는 이점을 확실하게 알 기 위해 순수 JPA 기반 repository 만들고 스프링 데이터 JPA 공통 인터페이스를 사용하여 만들어 보도록 하자! 순수 JPA 기반 Repository를 아래와 같이 만든다. TeamRepository.java package study.datajpa.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; import study.datajpa.entit..
Spring Data JPA는 Spring 프레임워크에서 JPA기술을 편리하게 이용할 수 있는 기술이다. 매번 반복 해야했던 CRUD를 쉽게 작성 할 수 있으며 구현체 없이 인터페이스만으로도 데이터 조작이 가능하다. 그렇기에 비즈니스 코드 작성에만 집중하여 개발하면 된다. 우선 우리는 순수 JPA와 스프링 데이터 JPA를 비교해보도록 하자! 스프링 부트 스타터(start.spring.io)를 통해 프로젝트를 쉽게 생성해보도록 하자! dependencies 아래 항목들을 추가한다. 라이브러리 설명 Spring Web JPA가 Web 관련 지원하는 기능을 사용하기 위함 Spring Data JPA JPA 사용을 위함 H2 Database 메모리 기반 2Mb 정도의 작은 데이터 베이스 (설치 없이 이용가능) ..