인프런 커뮤니티 질문&답변

손민수님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@Table과 @Entity 차이점

20.10.10 03:18 작성

·

4.5K

0

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

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

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

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

답변 1

7

galid님의 프로필 이미지

2020. 10. 10. 11:30

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님의 프로필 이미지

2022. 03. 09. 21:51

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

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