티스토리 뷰
Spring Data JPA -> JPA -> Hibernate -> Datasource
- 의존성 추가
spring-boot-starter-data-jpa,
- 실제 수행과 테스트를 위한 디비 의존성 추가
h2, postgresql
- 클래스 생성
@Entity -> 테이블을 객체화 시켰다고 생각.
@GeneratedValue -> repository를 통해 저장할 때, 자동으로 값을 준다 . Auto라고 생각.
기본적으로 id , getter,setter가 필요하다.
getter,setter, equlas,hashCode 생성 , 롬복을 활용해도 좋다.
- Repository interface 생성
extends JpaRepository<'entity class', 'id'>
- 테스트
@SpringbootTest로 통합 테스트, @DataJpaTest로 슬라이스 테스트가 있다.
통합 테스트로 할때는 application.properties가 적용되어 실제 내가 쓸려고 하는 db에 영향을 미친다.
추천하는 방법은 슬라이스 테스트이다.
슬라이스 테스트를 할때는 인메모리 데이터베이스를 사용한다 (h2).
@SpringbootTest를 사용하고 싶다면,
@SpringbootTest(properties = "spring.datasource.url={ 테스트용 db url }")
@DataJpaTest를 통해 Datasource, JdbcTemplate 를 주입받을 수 있다.
@DataJpaTest 사용시 출력으로 h2를 사용중임을 알 수 있다.
기존에 findByUsername이라는 메소드는 없다.
findBy필드(필드타입 이름)
AccountRepository에서 findByUsername이라는 메소드 생성
메소드만 추가하면, 빈으로 등록하는 것 까지 spring data jpa가 알아서 해준다.
@Query로 커스텀 할 수도 있다
ex) @Query(nativeQuery = true, value = "select * from account where username = '{0}' ")
Account findByUsername(String username );
※참조
www.inflearn.com/course/스프링부트/lecture/13560
'Spring' 카테고리의 다른 글
시큐리티 1부~2부 (0) | 2020.07.13 |
---|---|
데이터 7부 : 데이터베이스 초기화 (0) | 2020.07.13 |
데이터 4부 : PostgreSQL (0) | 2020.07.12 |
데이터 3부 : MySQL (0) | 2020.07.12 |
데이터 2부 : 인메모리 데이터베이스 (0) | 2020.07.12 |
- Total
- Today
- Yesterday
- 패스트캠퍼스 컴퓨터공학 완주반
- JPA 연관관계 매핑
- JS 딥다이브
- 백준
- js array
- REST API
- java
- 백기선 스터디
- 이펙티브자바
- HTTP 완벽 가이드
- js api
- 프로그래머스
- HTTP 완벽가이드
- http
- 김영한 JPA
- 킹수빈닷컴
- dreamcoding
- BOJ
- GCP
- 김영한 http
- js promise
- 이펙티브자바 아이템59
- 이펙티브자바 스터디
- ㅇㄷㅇㅈ
- 모던자바스크립트
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 드림코딩
- Spring Security
- 이펙티브자바 아이템60
- 프로그래머스 SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |