Hibernate hbm2ddl如何自动创建表?

时间:2016-02-24 01:06:34

标签: hibernate jpa hbm2ddl

我正在阅读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')

在模型包下,它有一个Member类。

我的问题:

  1. 应用程序如何在数据库中自动创建表成员?
  2. 它从何处获取架构信息?
  3. 应用程序运行后,为什么以及如何'import.sql'以原子方式执行?

1 个答案:

答案 0 :(得分:3)

您的问题的答案,按顺序:

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