프로젝트[종료]

10. JpaRepository<T, Id>인터페이스 상속받기

알렉스 페레이라 2023. 4. 26. 19:04

저번에는 MariaDB를 연동하고, @Entity어노테이션을 사용하여 ORM을 처음 사용해봤다.  로그인 기능을 사용하기 위해간단하게 두가지 기능이 필요하다.

  • 회원가입
  • 로그인을하기위한 사용자 조회

이뿐만 아니더라도 다양한 쿼리가 필요할것으로 예상된다. 다른테이블에서도 중복되는 쿼리들이 매우 많은데. 해당 작업은 반복적이고 실수를 유발한다.

 

이를 위해 스프링부트에서는 JpaRepository인터페이스를 제공한다. 단순히 JpaRepository를 상속받음으로 아래와 같은 기능을 사용할 수 있다.

 

 

 

method 기능
save() 저장(INSERT, UPDATE)
findOne() PK로 하나의 레코드 찾기
findAll() 전체 가져오기(정렬, 페이징)가능
count() 갯수
delete() 삭제

물론 복잡한 쿼리는직접 JPQL을 사용해서 작성해줘야 하지만 그러한 쿼리까지는 지금 프로젝트에서 필요없으므로(아직)

일단 JPA를 사용하여 로그인기능을 만들어보자.

 

예를 들어 이 외에도 다양한쿼리를 사용하고 싶다면, 아래와 같은 규칙을 따라야한다.

 

method 설명
findBy~ 쿼리를 요청하는 메소드
countBy~ 카운트를 요청하는 메소드

findBy에 이어 해당 Entity필드명을 입력하면 검색쿼리를 실행한 결과를 반환한다.



이 외에도 자세한 정보를 얻고싶으면 Spring이 제공하는 JPA매뉴얼을 확인하면 된다.

https://docs.spring.io/spring-data/jpa/docs/1.10.1.RELEASE/reference/html/#jpa.sample-app.finders.strategies

 

Spring Data JPA - Reference Documentation

Example 11. Repository definitions using Domain Classes with mixed Annotations interface JpaPersonRepository extends Repository { … } interface MongoDBPersonRepository extends Repository { … } @Entity @Document public class Person { … } This example

docs.spring.io

 

다음엔 회원가입을 만들어 봐야겠다.