Hibernate hbm2ddl如何自动创建table?

How does Hibernate hbm2ddl automatically create table?

我正在阅读 Java EE (JBoss) 应用程序示例,并在 Java EE 中学习 Hibernate 的基础知识。在src/main/resources/META-INF/persistence.xml下:

      <jta-data-source>java:jboss/datasources/MemberDS</jta-data-source>
      <properties>
         <!-- Properties for Hibernate -->
         <property name="hibernate.hbm2ddl.auto" value="create" />
         <property name="hibernate.show_sql" value="false" />
      </properties>
   </persistence-unit>

在src/main/resources/import下。sql:

insert into Member (id, name, email, password, phone_number) values (0, 'John Smith', 'john.smith@mailinator.com', 'password', '2125551212')

在模型包下,它有一个成员class。

我的问题:

  1. 应用程序如何在数据库中自动创建 Table 成员?
  2. 它从哪里获得架构信息?
  3. 为什么以及如何在应用程序 运行 后自动执行 'import.sql'?

您问题的答案,按顺序:

  1. 应用程序如何在数据库中自动创建Membertable?
    通过执行 CREATE TABLE 语句。
  2. 它从哪里获取架构信息?
    来自您的 entities/entity 配置。
  3. 为什么以及如何在应用程序 运行 后自动执行 import.sql
    至于方法:如果 hibernate.hbm2ddl.auto 属性 设置为 create,Hibernate 将自动尝试从类路径的根目录导入 import.sql 文件(要导入的文件可以使用 hibernate.hbm2ddl.import_files 属性).
    进一步指定 至于为什么:我只能猜测,但我猜 Hibernate 团队认为这可能是一个方便的功能?