Entity와 Repository

Red Culture·2021년 6월 29일

Entity란

DB의 테이블과 같은 의미로 JPA에서는 테이블을 자동으로 생성해주는 기능이 존재한다.
또한, JPA의 Entity, Column은 자동으로 camel case -> DB의 snake_case에 매칭 시켜준다.

@Data
@AllArgsConstructor
@Entity    // == table
            // @Table(name = "user") : 클래스 이름과 테이블 이름이 같으면 생략 가능
public class User {

    // pk(식별자) 설정
    @Id

    // 어떤 식으로 키 전략을 가져갈지 설정하는 부분, IDENTITY/AUTO/TABLE/SEQUENCE 4개 타입이 있는데 mysql을 사용하므로 IDENTITY로 설정
    @GeneratedValue(strategy = GenerationType.IDENTITY)

    // @Column(name = "id") : 선언한 변수 이름과 테이블 컬럼 이름이 같으면 생략 가능
    private Long id;
    private String account;
    private String email;
    private String phoneNumber;
    private LocalDateTime createdAt;
    private String createdBy;
    private LocalDateTime updatedAt;
    private String updatedBy;

    public User() {}
}

Repository란

따로 쿼리문을 작성하지 않아도 기본적인 CRUD (Create/Read(select)/Update/Delete)를 사용할 수 있게 만들어주는 어노테이션이다.

선언하는 방법

@Repository
public interface 인터페이스명 extends JpaRepository<제네릭 타입, 식별자 타입>

*참고자료 - 패스트 캠퍼스 온라인 강의

profile
자기 개발, 학습 정리를 위한 블로그

0개의 댓글