작성
·
4.7K
0
Order 객체를 매핑할때, db에서 테이블명을 orders로 설정하고 싶어 @Table(name="orders")로 하는 것을 보았습니다.
이말은 실제 클래스명과 다르게 테이블명을 바꾼다 로 알수 있는데 @Entity(name ="orders")로 그냥 하면 되는게 아닌가요 ?
그리고 @Entity가 붙어야 JPA가 관리한다로 알고 있는데 그렇다면 @Entity없이 클래스에 @Table만 쓰면 JPA가 인식을 못한다는
말인가용?? 아직 정확히 Table과 Entity의 쓰임 차이를 모르겠네요 ㅠㅠ
답변 1
7
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 이름이 모두 결정됩니다.
즉 @Entity만 사용할 경우 자동으로 Entity+Table 기능을 수행하고
@Entity + @Table 을 따로 사용하면 각자 설정 값에 따라 작동하는 거군요