我有一个疑问,因为@Entity和@Table中都存在name属性
例如,允许名称属性具有相同的值
@Entity(name = "someThing") @Table(name = "someThing")
我也可以在同一班上使用不同的名字
@Entity(name = "someThing") @Table(name = "otherThing")
谁能告诉我这两者之间有什么区别,为什么我们两者都具有相同的属性?
@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
@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 。