如何在spring / hibernate / jpa中创建自动表创建?

使用hibernate / jpa时,我无法在spring中自动创建表。

这是我的配置文件:

   org.hibernate.ejb.HibernatePersistence xxx ...             

的context.xml

                            

任何想法可能有什么不对? 谢谢你的帮助 :)。

尝试以下方法:

     
        ... create-drop     

这对我有用。

我有完全相同的问题……

评论财产

   in the JpaAdapter, 

但是设定

  in persistence.xml 

为我工作。 我正在使用hsqldb。

我在日志中注意到无论我在persistence.xml中设置什么,模式都设置为更新。

persistence.xml中的值实际上已被拾取但从未应用过。 我使用的是Spring 3.0.6和Hibernate 4

您可以尝试在spring配置文件中的HibernateJpaVendorAdapter上将generateDdl属性更改为false。

似乎与hibernate hibernate.hbm2ddl.auto属性冲突

有关详细信息,请参阅https://jira.springframework.org/browse/SPR-6836 。

在我使用的my hibernate-default.cfg.xml中

  update 

并且它工作得很好,所以配置文件如下

      org.hibernate.dialect.MySQLDialect  thread  true 'Y', false 'N'    false  false update  

遗憾的是,这两个解决方案对我都不起作用:(。“hibernate.hbm2ddl.auto = update”也没关系,因为它应该创建表,如果它们不存在的话。

似乎persistence.xml中的所有属性设置都被识别为用户名,并且数据库提供程序已正确设置。 遗憾的是,在启动时不会创建表,导致我的测试用例失败,因为SELECT语句会抛出错误…

如您所见,我已将连接URL设置为使用本地文件数据库,这允许我在测试运行后查看数据库日志。 但是测试运行后日志文件仍然是空的,即使没有写入错误:(。

这对我有用

             

如果我将值更改为false,如此那么我得到SqlExceptionHelper:144 - Table not found in statement

也许到了晚了,但今天我在为遗留应用程序编写测试时遇到了同样的问题。

我使用的是spring 2.5hibernate3HSQL数据库。

为了解决这个问题,我将数据库从HSQL更改为H2 ,将数据源从org.springframework.jdbc.datasource.DriverManagerDataSource更改为org.apache.commons.dbcp.BasicDataSource

spring-context.xml看起来像:

                    ...  

persistence.xml看起来像:

            

我希望它有所帮助。

在我的情况下,没有创建表,因为使用@Table注释的对象未注释为@Entity