JPA Entity 매핑

한민기·2024년 8월 12일

Spring

목록 보기
6/8
post-thumbnail

Entity 매핑

jpa에서 엔티티는 데이터베이스에 저장 될 수 이쓰는 데이터를 나타낸다.
엔티티는 데이터 베이스의 테이블이라고 생각하면 된다.
엔티티의 각 인스턴스는 테이블의 한 행을 나타낸다.

Entity 매핑 하는 법

어노테이션을 사용한다.

  • @Entity : JPA가 관리할 객체임을 명시한다.
    - name : Entity의 이름을 설정. 없으면 클래스 이름
  • @Table : 매핑할 DB테이블 정보 설정한다.
    - name : table 이름 설정. 없으면 Entity의 이름
    - index : table의 index를 설정한다.
  • @Id : 기본 키 (PK) 매핑
  • @Column : 필드와 컬럼 매핑 가능

예시

@Entity
@Table(name = "members")
public class Member {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    
    @Column(name = "created_at")
    private ZonedDateTime createdDate;

}

참고할 어노테이션

  • @GeneratedValue : auto_increment등의 옵션을 줄때 사용

    • 타입으로는 : TABLE, SEQUENCE, IDENTITY, UUID, AUTO가 있음
  • @Column : 필드와 컬럼 매핑기능

    • 여기서 유니크 키 설정도 할수 있음 ex) @Column(unique = true)
    • 타입 정의도 변경할 수 있음 @Column(columnDefinition = "TEXT") columnDefinition은 구문을 직접 정의한다.
    • 길이 설정도 할 수 있다. @Column(length = 255) default 는 255
    • not null 설정도 가능하다. @Column(nullable = false) default = true
    • insert, update문에 포함될지 여부 설정도 가능하다. (insertable, updatable)이걸로
  • @Transient : Entity에는 있지만 데이터 베이스에서 사용하지 않을 때

정리

가볍게 생각하면 Entity = DB의 table
Entity를 사용할 때는 @Id(DB의 PK)가 필수이다.
어노테이션을 활용하여 옵션을 적용할 수 있다.

profile
백엔드 개발자

0개의 댓글