티스토리 뷰

spring

@Entity / @Table

kirinman 2022. 12. 30. 11:33

@Entity

  • 기본 생성자는 필수로 있어야 함! -> jpa 규정이라고 함.
  • 저장할 필드에 final사용할 수 없음
  • jpa를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수
  • final클래스, enum, interface, inner(중첩클래스) 클래스는 @Entity를 사용할 수 없음

@Entity 속성

  • 예시) @Entity(name="Member")
    jpa가 내부적으로 구분하는 이름으로, 설정을 따로 안하면 기본값으로 클래스 이름을 그대로 사용한다.
    클래스 이름이 겹치거나 하는 게 아니면 바꾸지 말자.

@Table

  • 엔티티와 매핑할 테이블 지정 name 속성 생략하면 클래스 이름 그대로 사용

실제 사용

  • Entity에 해당되는 파일에 @Entity와 @Table을 사용할 수 있음.
  • 일단 @Entity는 필수. 다만 Entity만 사용했을 때에는 DB와 연결할 때, 테이블 명이 클래스와 동일하게 설명됨
  • 즉 클래스 이름이 Member라면, DB에서 Member 테이블로 연결된다는 얘기.
  • @Table 어노테이션은 실제 DB에 붙을 테이블명을 말함.
  • 예를들어 @Entity / @Table(name = "hello")라고 지정을 해 두면,
  • createQuery(select * from Member)로 호출을 하면 호출은 엔티티 클래스 이름으로 가는데, 실제 DB에는 테이블 네임으로 붙는다

'spring' 카테고리의 다른 글

IoC (Spring에 국한된 것 아님!)  (0) 2022.12.30
싱글톤 패턴  (0) 2022.12.30
@Enumerated  (0) 2022.12.30
primitive type으로 안하는 이유?  (0) 2022.12.28
devtools로 springboot 자동 재시작하게 만들기  (2) 2022.12.26
댓글