如何在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.5
, hibernate3
和HSQL
数据库。
为了解决这个问题,我将数据库从HSQL
更改为H2
,将数据源从org.springframework.jdbc.datasource.DriverManagerDataSource
更改为org.apache.commons.dbcp.BasicDataSource
。
spring-context.xml看起来像:
...
persistence.xml看起来像:
我希望它有所帮助。
在我的情况下,没有创建表,因为使用@Table注释的对象未注释为@Entity