一尘不染

@Entity和@Table中的名称属性

hibernate

我有一个疑问,因为@Entity和@Table中都存在name属性

例如,允许名称属性具有相同的值

@Entity(name = "someThing")
@Table(name = "someThing")

我也可以在同一班上使用不同的名字

 @Entity(name = "someThing")
 @Table(name = "otherThing")

谁能告诉我这两者之间有什么区别,为什么我们两者都具有相同的属性?


阅读 904

收藏
2020-06-20

共1个答案

一尘不染

@Entity(name = "someThing") => this name will be used to name the Entity
@Table(name = "someThing")  => this name will be used to name a table in

DB

因此,在第一种情况下,表和实体将具有相同的名称,这将允许您在编写HQL或JPQL时以与实体相同的名称访问表。

在第二种情况下,编写查询时,您必须使用 @Entity中提供 的名称,而 @Table中提供 的名称将用于在数据库中命名该表。

因此,在HQL中,您的 someThing 将引用 数据库 中的 otherThing

2020-06-20