[JPA 긴급 학습 (1)] @Entity와 @Table

1001 단어 JPAJPA
@Getter
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Bakeries extends BaseEntity {

    이제 여기서는 필드)
}

1. @Entity

이건 이제 JPA에서 관리하겠다는 걸 의미.

@Entity

그런데 이제 여기에 뒤에 name 속성이 붙을 수도 있음.

@Entity(name="~~")

이런식.
근데 이건 JPA에서 사용할 엔티티 이름을 지정하겠다는 의미.
디폴트값은 클래스이름.
다른 패키지에서 이름이 충돌하지 않도록 주의해야함.

주의사항

(1) 기본 생성자는 필수 (파라미터가 없는 public or protected 생성자)
(2) final클래스, enum, interface, inner클래스에서 사용 불가.
(3) 저장할 필드에 final을 사용하면 안됨.

2. @Table

@Table

클래스 레벨에 붙음.

name : 매핑할 테이블 이름 (디폴트는 엔티티 이름)

@Table(name="Bakery")

이런 식.

이건 인제 실제 DB에 있는 Table에서 어느 거랑 매핑할지 결정해주는 역할.
위에 @Entity는 JPA자체적으로 관리할 때 붙여지는 이름.

추가로 catalog, schema, uniqueConstraints 등이 존재.

좋은 웹페이지 즐겨찾기