반응형
기존의 작성한 UserRepository에 메소드를 구현
참고 사이트: https://ykh6242.tistory.com/105
findBy뒤에 Dto 변수를 입력하면 자동으로 해당변수의 해당하는 데이터를 찾아온다.
UserName으로 데이터를 찾는 메소드 구현
아래와 같은 리턴타입으로 변경할 수도 있다.
Test 코드 작성
데이터를 입력하는 부분을 Dto() 함수로 따로 뺐다.
// 테스트를 진행하기 전에 데이터를 입려하는 부분
public void Dto(){
// 기본 데이터 생성 jpa를 이용하여 insert 된다.
userRepository.save(new User("martin", "martin@fastcampus.com", LocalDateTime.now(), LocalDateTime.now()));
userRepository.save(new User("dennis", "dennis@fastcampus.com", LocalDateTime.now(), LocalDateTime.now()));
userRepository.save(new User("sophia", "sophia@fastcampus.com", LocalDateTime.now(), LocalDateTime.now()));
userRepository.save(new User("james", "james@fastcampus.com", LocalDateTime.now(), LocalDateTime.now()));
userRepository.save(new User("martin2", "martin2@fastcampus.com", LocalDateTime.now(), LocalDateTime.now()));
}
사용자 이름으로 데이터를 찾는 테스트 코드 작성
@Test
void select(){
// 데이터 입력
Dto();
// user name으로 결과 가져오기
System.out.println(userRepository.findByName("martin"));
}
이메일로 데이터를 찾는 예제
User findByEmail(String email);
User getByEmail(String email);
User readByEmail(String email);
User queryByEmail(String email);
User searchByEmail(String email);
User streamByEmail(String email);
User findUserByEmail(String email);
테스트 코드
// 이메일을 이용하여 데이터 검색
// 아래 내용 모두 동일한 쿼리와 결과값이 나오는걸 확인 할 수 있다.
System.out.println("findByEmail: " + userRepository.findByEmail("martin@fastcampus.com"));
System.out.println("getByEmail: " + userRepository.getByEmail("martin@fastcampus.com"));
System.out.println("readByEmail: " + userRepository.readByEmail("martin@fastcampus.com"));
System.out.println("queryByEmail: " + userRepository.queryByEmail("martin@fastcampus.com"));
System.out.println("searchByEmail: " + userRepository.searchByEmail("martin@fastcampus.com"));
System.out.println("streamByEmail: " + userRepository.streamByEmail("martin@fastcampus.com"));
System.out.println("findUserByEmail: " + userRepository.findUserByEmail("martin@fastcampus.com"));
원하는 컬럼의 갯수를 지정하여 데이터 내보내기
By를 기준으로 앞부분에 컬럼의 갯수를 입력하고 뒷부분에 Dto변수명을 입력한다.
List<User> findFirst1ByName(String name);
List<User> findTop1ByName(String name);
테스트 코드 작성
System.out.println("findTop1ByName: " + userRepository.findTop1ByName("martin"));
System.out.println("findFirst11ByName: " + userRepository.findFirst1ByName("martin"));
쿼리 확인(where절에 limit 조건이 추가된 것을 확인할 수 있다.)
반응형
'Spring > JPA' 카테고리의 다른 글
Query Method 예제 - 3 (0) | 2021.07.17 |
---|---|
QueryMethod 예제 2 (0) | 2021.07.17 |
JPA 메소드 예제 3 - update (0) | 2021.07.11 |
JPA TEST 코드 예제 2 (0) | 2021.07.11 |
JPA 설정 및 테스트코드 예제 1 (0) | 2021.07.04 |