当前位置: 首页 > 面试题库 >

@Entity和@Table中的名称属性

胡景澄
2023-03-14
问题内容

我有一个疑问,因为@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

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

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

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



 类似资料:
  • 我正在使用jOOQ codegen maven插件和jOOQ meta hibernate扩展成功地生成jOOQ类。 表/列的生成类和方法的名称使用实际的DB表和列名。 生成是否可以在类简单名称和实例变量名称上使用实体(名称=表)和列(名称=列)? 对我来说,在使用jOOQ创建查询时,使用与JPA类相同的名称会更直观。 谢谢

  • 我不太清楚kotlin是如何管理属性名和主构造函数参数名的。如果我写了相同的属性名和参数名,那么kotlin编译器会给出一个错误。 它给出了这个错误。 但是,当我更改属性的名称或更改主构造函数的参数名称时,代码将工作并编译。 这将工作或编译罚款。 这背后的原因是什么?为什么主构造函数的参数名和属性名不能相同?

  • 我们有一个使用Spring Boot JPA/Hibernate构建的服务。 我在不同的jars包中有两个同名的类。 使用Eclipse运行应用程序会导致重复导入问题,因此我在其中一个实体中添加了以下内容: 它解决了Eclipse中的问题,我可以很好地运行应用程序。但是,当使用java -jar运行Spring Boot生成的jar时,问题又回来了: 看起来@Entity(name)属性被完全忽略

  • 如果所有的命名都是按照 Mapper 的映射来操作的,那当然是最理想的。但是如果碰到某个表名或者某个字段名跟映射规则不匹配时,我们就需要别的机制来改变。xorm 提供了如下几种方式来进行: 如果结构体拥有 TableName() string 的成员方法,那么此方法的返回值即是该结构体对应的数据库表名。 通过 engine.Table() 方法可以改变 struct 对应的数据库表的名称,通过 s

  • 我将php中的Symfony与此捆绑包一起使用:https://github.com/hslavich/OneloginSamlBundle 使用onelogin php saml工具包:https://github.com/onelogin/php-saml 身份验证时我的IDP返回需要从oid映射到友好名称的属性 如果我在symfony bundles配置中使用oid名称,并且没有友好的名称,

  • 问题内容: 我正在尝试反序列化JSON。我的根对象具有单个属性“ en.pickthall”。我正在使用动态类型读取JSON。我以为我可以取消“。” 在属性中,因为它是本地JSON文件,但是必须有某种方法可以访问此类属性 问题答案: C#没有任何引用标识符的方式。如果不是有效的标识符,则唯一的选择就是反射。 但是,您的JSON解串器返回的对象可能会更改了标识符,以使其在C#中可用- 您可能希望枚举