참고 자료

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정

스프링부트 with JPA 블로그 6강 - yaml 설정

JPA를 사용하는 이유

JPA 설정 방법

  1. Dependency 추가 - 예시

    Untitled

    Untitled

  2. Entity 클래스 생성

    Untitled

    ex) MariaDB Sample 테이블 생성 script

    Untitled

    1. @Entity가 붙은 클래스는 JPA가 관리하는 클래스

      1. 테이블과 매핑할 테이블은 이 어노테이션을 붙임.
    2. mbrNo 필드는 @id를 사용하여 기본키(PK)로 지정함.

      1. Table 생성시 해당 필드를 PK, AUTO_INCREMENT로 설정하였기 때문에 직접할당 방식이 아닌, 자동으로 생성되도록 하기 위해 @GeneratedValue를 사용함.
      2. GenerationType.IDENTITY는 기본 키 생성을 데이터베이스에 위임하는 방식.
      3. @GeneratedValue는 여러 strategy가 있음.
        1. IDENTITY, SEQUENCE, TABLE, AUTO …

      Untitled

      Untitled

    3. Repository 클래스 생성

      1. Repository 인터페이스를 생성한 후 JpaRepository<Entity, 기본키 타입>을 상속받으면 기본적인 Created, Read, Update, Delete가 자동으로 생성됨.
      2. JPA 처리를 담당하는 Repository는 기본적으로 4가지가 있음. T : Entity의 타입 클래스, ID : P.K 값의 Type
        1. Repository<T, ID>
        2. CrudRepository<T, ID>
        3. PagingAndSortingRepository<T, ID>
        4. JpaRepository<T, ID>

      Untitled

      이런식으로 메소드 이름을 잘 조합하여 쿼리 처리를 할 수 있음.

      • findBy 뒤에 컬럼명을 붙여주면 이를 이용한 검색이 가능함.
        • And → findByLastnameAndFirstname
          • 풀어쓰면 where x.lastname = ? and x.firstname= ?
        • Or → findByLastnameOrFirstname
          • where x.lastname = ? or x.firstname = ?
        • Is , Equals → findByName, findByNameIs, findByNameEquals
        • Between → findBySalBetween
          • where x.sal between ? and ?
    4. Service 생성

      Untitled

    5. Controller 생성

      Untitled

    6. Properties 설정

      Untitled