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
- Controller
- 삽질잼
- upstream
- Github
- 공부하기
- POST
- Request
- data
- git
- sagan
- MVC
- 개념정리중
- fork
- response
- 공부
- 개선하기
- 스프링
- renderer
- 개념잡기
- JPA
- Spring
- 따라하기
- 프레임워크
- 문제해결
- javaserverpage
- entity
- 너무재미꼬
- 홈페이지
- 계획은없음
- synchronizing
Archives
- Today
- Total
메모장
Spring data JPA 본문
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 |