[Spring JPA #2] JPA 엔티티 매핑 용어 정리

@Entity

  • 엔티티는 자바에서 객체지향적인 코드를 작성할 때 네이밍된 DB와 대응된느 클래스의 이름이다.
  • 보통 클래스와 같은 이름을 사용하기 때문에 값을 변경하지 않는다. 값을변경할 때는 @Entity(name="myAcount") 와 같은 형식의 어노테이션을 붙이면 된다.

@Table

  • 테이블은 RDBMS 안의 릴레이션 스키마에 대응되는 이름을 나타낸다.
  • @Table(name="myAcount") 같은 형식의 어노테이션을 붙여서 엔티티와 대응되는 테이블명을 명시할 수 있다.

@Id

  • 엔티티의 주키를 매핑할 때 사용한다.
  • 자바의 모든 Primtive 타입과 그 래퍼타입을 사용할 수 있다.

@GeneratedValue

  • 주키의 생성 방법을 매핑하는 어노테이션이다.
  • 생성전략과 생성기를 설정할 수 있다.
  • 기본적으로 AUTO 이며 DB에 따라서 주키 생성 방법에 대한 전략이 달라 질 수 있다.

@Column

  • @Column은 멤버 변수와 DB Table의 컬럼에 매핑하는 어노테이션 이다.
  • @Entity 어노테이션이 붙어있는 엔티티 클래스의 멤버 변수에는 기본적으로 @Column 어노테이션이 붙은효과가 기본적으로 부여된다.

@Temporal

  • @Temporal은 시간을 나타내는 데이터를 각 DBMS에서 제공하는 시간 관련 데이터와 매핑한다.

@Transient

  • 클래스 멤버 변수 중 DB 컬럼과 매핑하고 싶지 않은 멤버 변수에 추가하여 매핑 대상에서 제외할 수 있다.

댓글

Designed by JB FACTORY