【问题标题】:JPA - What if @Table is not specified for the entity?JPA - 如果没有为实体指定 @Table 怎么办?
【发布时间】:2015-05-27 06:40:33
【问题描述】:

我提到了@Tabledocumentation,它说:

如果没有为实体类指定表注解,则默认 值适用。

我的问题是默认值是多少?

【问题讨论】:

    标签: java hibernate jpa hibernate-mapping


    【解决方案1】:

    默认表名是实体类的非限定类名,默认模式名是来自数据库连接的连接模式。

    【讨论】:

      【解决方案2】:

      如果您指定@Entity 而您没有指定@Table,您的类将被映射并且在数据库中您将获得类名作为您的表的名称。

      来自文档中的Marking a POJO as persistent entity 部分:

      @Table 设置在类级别;它允许您为实体映射定义表、目录和模式名称。 如果没有定义@Table,则使用默认值:实体的非限定类名

      例如,如果您有:

      @Entity
      public class MyTest{ ...
      

      您的表在数据库中的名称为my_test。 请注意,PascalCase 将被转换为 pascal_case。请注意这一点。

      【讨论】:

      • +1 用于指出 Hibernate 文档的右侧部分。我引用的 JPA 文档含糊不清,让人猜测......
      猜你喜欢
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      相关资源
      最近更新 更多