Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 스프링 핵심 기능
- QueryDSL
- SpringBoot
- 알고리즘
- Spring Boot
- 백준
- 스프링
- transaction
- 그리디
- JPQL
- kotlin
- 김영한
- 스프링 핵심 원리
- 인프런
- JDBC
- http
- Thymeleaf
- Exception
- Android
- 자바
- Greedy
- db
- spring
- jpa
- java
- Servlet
- AOP
- pointcut
- Proxy
- springdatajpa
Archives
- Today
- Total
개발자되기 프로젝트
스프링 데이터 JPA 소개 본문
스픅링 데이터 JPA는 JPA를 사용할 때 지루하게 반복하는 코드를 자동화 해줌.
기존에 만든 라이브러리를 SPRING DATA JPA로 바꿔보자 ㅋㅋㅋㅋㅋ
JpaRepository에 들어가보면 웬만한 것은 다 만들어놨다. 사용하면됨 ㅋㅋㅋ
어? 구현체는? 알아서 만들어줌.. ㅗㅜㅑ
@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
@Override
List<T> findAll();
@Override
List<T> findAll(Sort sort);
@Override
List<T> findAllById(Iterable<ID> ids);
@Override
<S extends T> List<S> saveAll(Iterable<S> entities);
void flush();
<S extends T> S saveAndFlush(S entity);
<S extends T> List<S> saveAllAndFlush(Iterable<S> entities);
@Deprecated
default void deleteInBatch(Iterable<T> entities){deleteAllInBatch(entities);}
void deleteAllInBatch(Iterable<T> entities);
void deleteAllByIdInBatch(Iterable<ID> ids);
void deleteAllInBatch();
@Deprecated
T getOne(ID id);
T getById(ID id);
@Override
<S extends T> List<S> findAll(Example<S> example);
@Override
<S extends T> List<S> findAll(Example<S> example, Sort sort);
}
없는거는 요렇게 선언해주면 SPRING DATA JPA가 알아서 SQL만들어줌 ㅜㅜㅜ
public interface MemberRepository extends JpaRepository<Member, Long> {
//select m from Member m where m.name = ?
List<Member> findByName(String name); //와 여기서 끝임 쿼리 만들어줌
}
- 스프링 데이터 JPA는 JpaRepository 라는 인터페이스를 제공하는데,
- 여기에 기본적인 CRUD 기능이모두 제공됨.
- findByName 처럼 일반화 하기 어려운 기능도 메서드 이름으로 정확한 JPQL 쿼리를 실행한다.
select m from Member m where m.name = :name - 개발자는 인터페이스만 만들면 된다. 와!!!!!!
- 구현체는 스프링 데이터 JPA가 애플리케이션 실행시점에 주입해준다.
- 스프링 데이터 JPA는 스프링과 JPA를 활용해서 애플리케이션을 만들때 정말 편리한 기능을 많이
제공한다 - 결국 JPA 자체를 잘 이해하는 것이 가장 중요하다.
GitHub : 210826 spring data jpa
'인프런 > [인프런] Springboot와 JPA활용 2' 카테고리의 다른 글
QueryDSL소개 (0) | 2021.08.26 |
---|---|
OSIV와 성능 최적화 (0) | 2021.08.26 |
API 개발 정리 (0) | 2021.08.25 |
컬렉션 조회 최적화 : 플랫 데이터 최적화 (0) | 2021.08.25 |
컬렉션 조회 : 최적화 (0) | 2021.08.25 |
Comments