[Spring JPA #2] JPA 엔티티 매핑
| @Entity
- 엔티티는 자바에서 객체지향적인 코드를 작성할 때 네이밍된 DB와 대응되는 클래스의 이름입니다.
- 보통 클래스와 같은 이름을 사용하기 때문에 값을 변경하지 않습니다. 값을 변경할 때는 @Entity(name = "myAccount") 같은 형식의 어노테이션을 붙여서 변경할 수 있습니다.
- 엔티티 이름이 DB안에 있는 Table명과 바로 대응되는 것은 아니지만 @Table 어노테이션을 통해서 특별한 정보를 추가하지 않을 경우 엔티티 이름이 바로 DB안에 있는 Table명과 대응됩니다.
| @Table
- 테이블은 RDBMS 안의 릴레이션 스키마에 대응되는 이름을 나타냅니다.
- @Table(name = "myAccount") 같은 형식의 어노테이션을 붙여서 엔티티와 대응되는 테이블명을 명시할 수 있습니다.
| @Id
- 엔티티의 주키를 매핑할 때 사용합니다.
- 자바의 모든 primitive 타입과 그 래퍼 타입을 사용할 수 있습니다.
| @GeneratedValue
- 주키의 생성 방법을 매핑하는 어노테이션입니다.
- 생성 전략과 생성기를 설정할 수 있습니다. 기본 전략은 AUTO이며 DB에 따라서 주키 생성 방법에 대한 전략이 달라 질 수 있습니다.
| @Column
- @Column은 멤버 변수와 DB Table의 컬럼에 매핑하는 어노테이션입니다.
- @Entity 어노테이션이 붙어있는 엔티티 클래스의 멤버 변수에는 기본적으로 모두 @Column 어노테이션이 붙은 효과가 기본적으로 부여됩니다.
| @Temporal
- @Temporal 은 시간을 나타내는 데이터를 각 DBMS에서 제공하는 시간 관련 데이터와 매핑합니다. (systimestamp date ... )
| @Transient
- 클래스의 멤버 변수 중 DB 컬럼과 매핑하고 싶지 않은 멤버 변수에 추가하여 매핑 대상에서 제외할 수 있습니다.
'Spring Data > Spring Data JPA' 카테고리의 다른 글
[Spring JPA #9] 스프링 데이터 JPA 원리 및 스프링 데이터 구성 요소 (0) | 2021.03.25 |
---|---|
[Spring JPA #8] JPA Query (0) | 2021.03.25 |
[Spring JPA #7] JPA Fetch (0) | 2021.03.25 |
[Spring JPA #6] JPA Cascade (0) | 2021.03.25 |
[Spring JPA #5] JPA 엔티티 상태 (0) | 2021.03.25 |
[Spring JPA #4] JPA 관계 매핑 (0) | 2021.03.25 |
[Spring JPA #3] Entity 매핑 및 Value 타입 매핑 (0) | 2021.03.25 |
[Spring JPA #1] JPA 시작 및 세팅하기 (0) | 2021.03.25 |