베오
DCode
베오
전체 방문자
오늘
어제
  • 분류 전체보기 (218)
    • 공지사항 (1)
    • 잡설 (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • 자료구조 (2)
      • 알고리즘 (Java) (14)
      • 알고리즘 (기초) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • 이론적인거 (14)
      • 보안 (5)
      • 오류 해결 (2)
      • 디자인 패턴 (5)
      • 네트워크 (1)
      • 기타 (1)
    • 최신기술 (4)
      • 블록체인 (1)
    • [Project] (1)

블로그 메뉴

  • 🐈‍⬛ GitHub
  • 📫 방명록
  • 🔖 태그

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
베오

DCode

Programming/[Spring Boot]

Entity 관련 Annotation

2023. 3. 12. 22:39

@Entity

해당 클래스가 Entity 임을 명시한다.

클래스 자체는 테이블과 일대일로 매칭

해당 클래스의 인스턴스는 테이블에서 하나의 레코드를 의미한다.


@Table

Entity 클래스는 테이블과 매핑되므로 특별한 경우가 아니면 @Table Annotation이 필요가 없다.

사용해야 할 때

  • 클래스의 이름과 테이블의 이름을 다르게 지정해야 하는 경우
    • 위 Annotation을 명시하지 않으면 테이블의 이름과 클래스의 이름이 동일하다는 의미이다.

@Id

테이블의 기본값 역할로 사용된다.

모든 Entity는 @Id Annotation이 필요하다.


@GeneratedValue

일반적으로 @Id Annotatio과 함께 사용된다.

값 생성 방식

GeneratedValue를 사용하지 않는 방식(직접 할당)

  • 애플리케이션에서 자체적으로 고유한 기본값을 생성하는 경우 쓰지 않음
  • 내부에 정해진 규칙에 의해 기본값을 생성하고 식별자로 사용하는 경우

AUTO

  • @GeneratedValue의 기본 설정값
  • 기본값을 사용하는 데이터베이스에 맞게 자동 생성한다.

IDENTITY

  • 기본값 설정을 데이터베이스에 위임하는 방식
  • 데이터베이스의 AUTO_INCREMENT를 사용해 기본값을 생성한다.

SEQUENCE

  • @SequenceGenerator Annotation으로 식별자 생성기를 설정하고 이를 통해 값을 자동 주입받는다.
  • @GeneratedValue에 생성기를 설정한다.

TABLE

  • 어떤 DBMS를 사용하더라고 동일하게 동작하기를 원할 경우 사용

@Column

  • Entity 클래스의 필드는 자동으로 테이블 칼럼으로 매핑된다.
  • 명시하지 않아도 무방하다.
    • 특별한 설정을 더할 때 사용된다.
  • 요소
    • name
      • 데이터베이스의 컬럼명을 설정(지정하지 않으면 필드명으로 지정)
    • nullable
      • 레코드를 생성할 때 컬럼 값에 null처리가 가능한지 명시(기본값 true)
    • length
      • 데이터베이스에 저장하는 데ㅣㅇ터의 최대 길이 설정
    • unique
      • 해당 컬럼을 유니크로 설정

@Transient

Entity클래스에서는 선언돼 있는 필드지만 DB에서 사용하지 않을 때 이 Annotatio을 사용



Uploaded by N2T

'Programming > [Spring Boot]' 카테고리의 다른 글

리포지토리 테스트 코드 작성  (0) 2023.03.16
JPA save vs saveAndFlush  (0) 2023.03.16
Lombok  (0) 2023.03.12
JpaRepository getById, findById  (0) 2023.03.12
DB 관련 용어  (1) 2023.02.01
    'Programming/[Spring Boot]' 카테고리의 다른 글
    • 리포지토리 테스트 코드 작성
    • JPA save vs saveAndFlush
    • Lombok
    • JpaRepository getById, findById
    베오
    베오

    티스토리툴바