Hibernate hbm2ddl如何自动创建表?
我正在阅读一个JavaEE(JBoss)应用程序的示例,并学习JavaEE中Hibernate的基础知识。在src/main/resources/META-INF/persistence.xml下: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
<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>
在模型包下,它有一个成员类
我的问题是:
对您的问题的回答,顺序如下:
成员表?
通过执行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')