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
- Spring Boot
- pointcut
- Exception
- springdatajpa
- 스프링 핵심 원리
- 인프런
- SpringBoot
- QueryDSL
- db
- Servlet
- 그리디
- http
- 백준
- Proxy
- 자바
- transaction
- AOP
- JDBC
- JPQL
- 스프링
- jpa
- 김영한
- Thymeleaf
- kotlin
- Greedy
- Android
- 알고리즘
- 스프링 핵심 기능
- spring
- java
Archives
- Today
- Total
개발자되기 프로젝트
Spring Data JPA 본문
Spring Data JPA사용하면 와..이게되네?
Spring Data JPA는 JPA를 활용하기 쉽게 도와주는 라이브러리임.
핵심은 JPA라는것을 잊지 말자.
1. SpringDataMemberRepository interface
인터페이스를 하나 만들자! JpaRepository와 이전에 만들어둔 MemberRepository를 상속 받는다.
public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository{
@Override
Optional<Member> findById(Long aLong);
}
간단하게 선언하는 것으로 사용이 가능하다.
그리고 JpaRepository를 상속받는 인터페이서는 스프링 데이터 JPA가 구현체를 만들고 스프링 빈으로 등록한다.
이제 가져다가 쓰면 된다.
2. SpringConfig
이전에는 memberRepository를 별도로 bean으로 등록하고 원하는 Repository를 return을 했다.
하지만 스프링 데이터 JPA가 JpaRepository를 상속한 interface의 구현체를 만들어 스프링 빈에 등록시키기 때문에,
우리는 생성자를 통해 해당 구현체를 주입받으면 된다.
@Configuration
public class SpringConfig {
private final MemberRepository memberRepository;
@Autowired
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService(){
return new MemberService(memberRepository);
}
/* @Bean
public MemberRepository memberRepository(){
//return new MemoryMemberRepository();
//return new JdbcMemberRepository(dataSource);
//return new JdbcTemplateMemberRepository(dataSource);
//return new JpaMemberRepository(em);
}
*/
}
3. 통합 테스트
4. JpaRepository
대부분 CRUD 메서드는 공통으로 제공해준다.
근데 못하는 것들도 있다.
예를들어 findByName, findByUserId 등등은 공통으로 제공하지 못한다.
하지만 이런 메서드들도 선언만 해줘도 사용이 가능하다.
예를들어 위에서 사용한 findByName을 선언한다고 보자.
스프링 데이터 JPA가 네이밍 규칙에 의해 JPQL을 자동으로 생성한다.
findByName --> select m from Member m where m.name = ?
복잡하고 어려운 쿼리는 Native Query나 JdbcTemplate를 사용한다.
5. GitHub : 210723,spring data jpa
'Spring Boot' 카테고리의 다른 글
AOP (0) | 2021.07.24 |
---|---|
JdbcTemplate (0) | 2021.07.23 |
스프링 통합 테스트 (0) | 2021.07.23 |
Jdbc활용하여 Application에서 DB로 넘겨보자. (0) | 2021.07.23 |
H2 Database 설치 및 사용 법 (0) | 2021.07.23 |
Comments