🟩 @Entity 란?
테이블과 매핑할 클래스에 @Entity 어노테이션을 붙인다.
@Entity가 붙은 클래스는 JPA가 관리해주며, 이것을 엔티티(Entity)라고 한다.
🟩 @Entity 사용 예제
// Entity에 member라는 이름을 부여한다.
@Entity(name = "member")
public class Member {
@Id @GeneratedValue
private Long id;
// 생성자 접근제어자 - public 또는 protected
public Member() {
}
}
🟩 @Entity 속성
속성 | 기능 | 기본값 |
name | JPA에서 사용할 Entity 이름 지정한다. 기본값은 클래스 이름이다. 이름이 같은 엔티티 클래스가 없어야 한다. |
설정하지 않은 경우 클래스 이름을 사용한다. |
🟩 @Entity 사용시 주의사항
- 기본 생성자가 있어야 한다.
- final 클래스, enum, interface, inner 클래스에는 사용하지 못한다.
- 저장할 필드에 final을 선언하면 안된다.
🟩 @Table 이란?
Entity와 매핑할 Table을 지정한다.
@Table을 생략할 경우 매핑한 Entity 이름을 Table 이름으로 사용한다.
🟩 @Table 사용 예제
// 데이터베이스 테이블명을 members라는 이름을 부여한다.
@Table(name="members")
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
public Member() {
}
}
🟩 @Table 속성
속성 | 기능 | 기본값 |
name | 매핑할 Table 이름을 부여한다. | Entity 이름을 기본값으로 한다. |
catalog | catalog 기능이 있는 데이터베이스에서 catalog를 매핑한다. | |
schema | schema 기능이 있는 데이터베이스에서 schema를 매핑한다. | |
uniqueConstraints | DDL 생성 시에 unique 제약 조건을 만든다. (스키마 자동 생성 기능을 이용한다.) |
🔗 참고