• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@Table과 @Entity 차이점

20.10.10 03:18 작성 조회수 3.52k

0

Order 객체를 매핑할때, db에서 테이블명을 orders로 설정하고 싶어 @Table(name="orders")로 하는 것을 보았습니다.

이말은 실제 클래스명과 다르게 테이블명을 바꾼다 로 알수 있는데 @Entity(name ="orders")로 그냥 하면 되는게 아닌가요 ? 

그리고 @Entity가 붙어야 JPA가 관리한다로 알고 있는데 그렇다면 @Entity없이 클래스에 @Table만 쓰면 JPA가 인식을 못한다는 

말인가용?? 아직 정확히 Table과 Entity의 쓰임 차이를 모르겠네요 ㅠㅠ

답변 1

답변을 작성해보세요.

7

galid님의 프로필

galid

2020.10.10

https://walkingtechie.blogspot.com/2019/06/difference-between-entity-and-table.html
- @Entity(name ="")의 경우 말그대로 엔티티의 이름을 정할때 사용됩니다. 이는 HQL에서 엔티티를 식별할 이름을 정합니다.
- @Table(name ="")의 경우 Database에 생성될 table의 이름을 지정할때 사용됩니다.
- @Table이 없고 @Entity(name ="")만 존재하는 경우, @Entity의 name 속성에 의해, Entity와 Table 이름이 모두 결정됩니다.

Cad님의 프로필

Cad

2022.03.09

즉 @Entity만 사용할 경우 자동으로 Entity+Table 기능을 수행하고

@Entity + @Table 을 따로 사용하면 각자 설정 값에 따라 작동하는 거군요