Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

스프링 데이터 JPA 소개 본문

인프런/[인프런] Springboot와 JPA활용 2

스프링 데이터 JPA 소개

Seung__ 2021. 8. 26. 22:05

스픅링 데이터 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


 

GitHub - bsh6463/SpringBootJPA1

Contribute to bsh6463/SpringBootJPA1 development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] 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