Hibernate hbm2ddl如何自动创建表?

Hibernate hbm2ddl如何自动创建表?,hibernate,jpa,hbm2ddl,Hibernate,Jpa,Hbm2ddl,我正在阅读一个JavaEE(JBoss)应用程序的示例,并学习JavaEE中Hibernate的基础知识。在src/main/resources/META-INF/persistence.xml下: <jta-data-source>java:jboss/datasources/MemberDS</jta-data-source> <properties> <!-- Properties for Hibernat

我正在阅读一个JavaEE(JBoss)应用程序的示例,并学习JavaEE中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>

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

我的问题是:

  • 应用程序如何在数据库中自动创建表成员
  • 它从哪里获得模式信息
  • 为什么以及如何在应用程序运行后自动执行“import.sql”
    对您的问题的回答,顺序如下:

  • 应用程序如何在数据库中自动创建
    成员
    表?
    通过执行
    createtable
    语句
  • 它从哪里获得架构信息?

    从您的实体/实体配置
  • 应用程序运行后,
    import.sql
    为什么以及如何自动执行?
    至于如何:如果
    Hibernate.hbm2ddl.auto
    属性设置为
    create
    (可以使用
    Hibernate.hbm2ddl.import\u files
    属性进一步指定要导入的文件),Hibernate将自动尝试从类路径的根目录导入
    import.sql
    文件。
    至于原因:我只能猜测,但我猜Hibernate团队认为这可能是一个方便的特性

  • 对您的问题的回答,顺序如下:

  • 应用程序如何在数据库中自动创建
    成员
    表?
    通过执行
    createtable
    语句
  • 它从哪里获得架构信息?

    从您的实体/实体配置
  • 应用程序运行后,
    import.sql
    为什么以及如何自动执行?
    至于如何:如果
    Hibernate.hbm2ddl.auto
    属性设置为
    create
    (可以使用
    Hibernate.hbm2ddl.import\u files
    属性进一步指定要导入的文件),Hibernate将自动尝试从类路径的根目录导入
    import.sql
    文件。
    至于原因:我只能猜测,但我猜Hibernate团队认为这可能是一个方便的特性

  • 再加上:假设您有一个表,客户可以将其用于您的企业级产品。如果您现在使用的是Hibernate(可能是以前使用过的其他东西?),那么您可能希望这些数据仍然存在,并且仍然存在于由Hibernate管理和创建的新表中。所以是的,Hibernate团队正在考虑有人从其他机制水平转移到Hibernate的情况。查找liquibase,它的功能是“从您的实体/实体配置”中查看替代方案,您的意思是它基于成员类的注释创建表吗?因为除了配置数据库的persistence.XML之外,我在应用程序中看不到任何其他XML配置。请参阅添加的成员类定义。这个类单独要求hibernate创建表吗?@ling您正在运行多个帐户吗?为什么用户user697911提出问题,而用户ling提供详细信息?是的。两台电脑。一个在家,另一个在办公室。谢谢。@ling回答您的问题:是的,基于注释。再加上:假设您有一个客户用于企业级产品的表。如果您现在使用的是Hibernate(可能是以前使用过的其他东西?),那么您可能希望这些数据仍然存在,并且仍然存在于由Hibernate管理和创建的新表中。所以是的,Hibernate团队正在考虑有人从其他机制水平转移到Hibernate的情况。查找liquibase,它的功能是“从您的实体/实体配置”中查看替代方案,您的意思是它基于成员类的注释创建表吗?因为除了配置数据库的persistence.XML之外,我在应用程序中看不到任何其他XML配置。请参阅添加的成员类定义。这个类单独要求hibernate创建表吗?@ling您正在运行多个帐户吗?为什么用户user697911提出问题,而用户ling提供详细信息?是的。两台电脑。一个在家,另一个在办公室。谢谢。@ling回答您的问题:根据注释,是的。
    insert into Member (id, name, email, password, phone_number) values (0, 'John Smith', 'john.smith@mailinator.com', 'password', '2125551212')