java - 如何在 Hibernate 上从 JPA 手动调用 create-drop?

标签 java hibernate jpa jboss-arquillian

我需要这个来进行集成测试。我的环境是 JBoss 7,Hibernate 4 上带有 JPA 的 EJB3,H2 内存数据库和测试由 Arquillian 运行。我希望能够删除数据库并再次创建它,所有表都基于 persistence.xml 和实体。我知道我可以在应用程序开始时指定:

<property name="hibernate.hbm2ddl.auto" value="create-drop" /> 

但我需要在第一次放置和创建发生后通过代码手动执行此操作。

这可能吗?什么是最简单的方法?

最佳答案

您可以在 Hibernate 中以编程方式执行此操作。

config = new Configuration();
config.setProperty(org.hibernate.cfg.Environment.SHOW_SQL, "true");
config.setProperty(org.hibernate.cfg.Environment.HBM2DDL_AUTO, "create");
....
SchemaExport export = new SchemaExport( config );
export.create( true, true );

JavaDocs 在这里:

http://docs.jboss.org/hibernate/core/3.5/javadocs/org/hibernate/cfg/Configuration.html http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/tool/hbm2ddl/SchemaExport.html

关于java - 如何在 Hibernate 上从 JPA 手动调用 create-drop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20535423/

相关文章:

java - Skype for Business 核心/插件 Java API

java - Spring-Data-Jpa:带子查询的内部连接

jpa - @EJB注释与JNDI查找+事务

java - 自动装箱和强制有什么区别?

Java replaceAll() & split() 违规行为

mysql - hibernate、mysql、glassfish v3 和 JTA 数据源

java - 我可以在类内编辑 hibernate 实体的字段(例如某些域逻辑)还是会导致一些与代理相关的问题?

hibernate - Grails - 查找用户今天创建的所有帖子

java - 如何配置 EclipseLink 2.0 和 Spring 3.0.5 以及 Tomcat 6?

Java-向 Hashmap 添加唯一值