JaPark Bug World

[SpringBoot] 스프링데이터 JPA에서 제공하는 메서드 사용해보기 본문

개발새발/스프링부트3 백엔드 개발자 되기

[SpringBoot] 스프링데이터 JPA에서 제공하는 메서드 사용해보기

JAstory 2024. 4. 11. 10:44

5.5 예제 코드 살펴보기

@Getter
@Entity  	// 1) 엔티티로 지정
@NoArgsConstructor(access = AccessLevel.PROTECTED)  // 2) 기본 생성자
@AllArgsConstructor
public class Member {
    @Id // 3) id 필드를 기본키로 지정
    @GeneratedValue(strategy = GenerationType.IDENTITY) // 4) 기본키를 자동으로 1씩 증가
    @Column(name = "id", updatable = false)
    private Long id;        // DB TABLE 'id' column matching

    @Column(name = "name", nullable = false)    // 5) name 이라는 not null 컬럼과 매핑
    private String name;    // DB TABLE 'name' column matching

    public void changeName(String name) {
        this.name = name;
    }
}

 

1) @Entity 애너테이션은 Member 객체를 JPA가 관리하는 엔티티로 지정, Member 클래스와 실제 데이터베이스의 테이블을 매핑

2) protected 기본 생성자, 엔티티는 반드시 기본 생성자가 있어야 하고, 접근 제어자는 public 또는 protected여야 한다.

3) @Id는 Long 타입의 id 필드를 테이블의 기본키로 지정

4) @GeneratedValue는 기본키의 생성 방식을 결정한다.

5) @Column 애너테이션은 데이터베이스의 컬럼과필드를 매핑

 

ORM은 관계형 데이터베이스와 프로그램 간의 통신 개념

JPA는 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 기술 명세

하이버네이트는 JPA의 구현체

스프링 데이터 JPA는 JPA를 쓰기 편하게 만들어 놓은 모듈


스프링부트3 백엔드 개발자 되기: 자바 편 책(저자 신선영)을 참고하여 정리한 내용입니다.