@Entity
@Entity 가 붙은 클래스는 엔티티라 부르며 JPA 가 관리
엔티티로 등록하게 되면 데이터 베이스에 테이블로 생성
- 기본 생성자 필수
- final 클래스, enum, interface, inner 클래스 사용이 제한
- 저장할 필드에 final 사용할 수 없음
속성
@Documented
@Target(TYPE)
@Retention(RUNTIME)
public @interface Entity {
String name() default "";
}
name:
- JPA 에서 사용할 엔티티 이름을 지정할 수 있음.
- 기본값은 클래스 이름 (예: Member)
- 같은 이름의 엔티티가 없으면 가급적 기본값을 사용
@Table
@Table은 엔티티와 매핑할 테이블 지정
속성
@Target(TYPE)
@Retention(RUNTIME)
public @interface Table {
String name() default "";
String catalog() default "";
String schema() default "";
UniqueConstraint[] uniqueConstraints() default {};
Index[] indexes() default {};
}
name: 매핑할 테이블 이름, 기본값으로 엔티티 이름을 사용
catelog: 데이터베이스 catalog 매핑
schema: 데이터베이스 schema 매핑
uniqueConstraints: DDL 생성 시에 유니크 제약 조건 생성
예시
엔티티 생성
@Entity
@Table(name = "member_test")
public class Member {
@Id @GeneratedValue
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
생성된 테이블
참조
자바 ORM 표준 JPA 프로그래밍 - 김영한
'Java' 카테고리의 다른 글
JPA 임베디드 타입 ( @Embeddable, @Embedded ) (0) | 2024.02.09 |
---|---|
JPA 데이터베이스 스키마 자동 생성 (0) | 2024.01.31 |
JPA Unknown entity 해결방법 (0) | 2024.01.29 |
JPA 구현체 하이버네이트 사용방법 (0) | 2024.01.27 |
JPA 란? (1) | 2024.01.21 |