메모장

Spring data JPA 본문

공부/Spring-Study

Spring data JPA

aeomhs 2019. 7. 29. 15:04

 

Spring에서, DB를 JPA로 관리하는 예제를 연습해보고 있다.

 

Domain, (Model의 일부분인 것 같다.)에서 Entity와 그것에 대한 DB 관리, 접근(DAO)을 구현하는 것에 JPA를 활용한다.

 

JPARepository 인터페이스만 상속받으면 알아서 다양한 DB 접근 메서드를 활용할 수 있다.

 

정말 많은 기능을 지원하고 있는데, 예제에서는 그 중 @query 기능을 사용하고 있었다.

어노테이션과 쿼리문을 활용해서, 필요한 DB 접근 메서드를 원하는대로 정의할 수 있다.

- 다음 예제는 Spring Data JPA 참조 문서에서 가져왔다.

public interface UserRepository extends JpaRepository<User, Long> {

  @Query("select u from User u where u.emailAddress = ?1")
  User findByEmailAddress(String emailAddress);
}

 

 

JpaRepository를 상속받음으로써 기본으로 지원되는 기능들을 알아보기 위해,

JpaRepository의 소스코드를 참조해보았다.

- 주석을 다 지웠는데, 각 메서드별로 정말 친절하게 설명을 잘 해준 것 같다.

@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
	List<T> findAll();
	List<T> findAll(Sort sort);
	List<T> findAllById(Iterable<ID> ids);
	<S extends T> List<S> saveAll(Iterable<S> entities);
	void flush();
	<S extends T> S saveAndFlush(S entity);
	void deleteInBatch(Iterable<T> entities);
	void deleteAllInBatch();
	T getOne(ID id);
	@Override
	<S extends T> List<S> findAll(Example<S> example);
	@Override
	<S extends T> List<S> findAll(Example<S> example, Sort sort);
}

 

 

Ref Docs를 읽는데.... 진짜 멋있다는 생각밖에 안들었다.

JPA에 대해서도 공부해서 정리해봐야겠다.

근데 한참 이론만 파서 그런지, 감이 떨어진 것 같다.

실습에 조금 집중해봐야겠다.

'공부 > Spring-Study' 카테고리의 다른 글

Spring Controller - Post Request & URL Response  (0) 2019.08.03
JSP 개념 잡기[1/N]  (0) 2019.07.24
Servlet 개념 잡기[1/N]  (0) 2019.07.23
MVC 개념 잡기[1/N]  (0) 2019.07.20
스프링 개념 잡기[1/N]  (0) 2019.07.17
Comments