【发布时间】:2012-07-02 20:46:05
【问题描述】:
以前,我的 Java web 项目使用 Eclipse 的普通结构,并且在容器(以防万一,Tomcat)启动时,Hibernate 正确生成了方案。
现在我正在使用 Maven 基础架构。我已经重新定位了所需的文件并配置得很好(我认为,因为一切正常:Spring 正在启动,Hibernate 正在连接数据库 - 当它之前创建并且有一些数据要获取时)。我已经测试了所有 CRUD 操作并且它正在工作。 问题是 Hibernate 拒绝像在 Eclipse 普通基础架构上那样生成方案 (DDL)。
附加信息:
-
我的 persistence.xml 几乎是空的(一如既往),因为 Spring applicationContext.xml 正在启动它。我没有更改文件,它和以前一样继续。
<!-- Location: src/main/resources/META-INF/persistence.xml --> <persistence> <persistence-unit name="jpa-persistence-unit" transaction-type="RESOURCE_LOCAL"/> </persistence> -
部分 Spring 配置放在这里(applicationContext.xml):
<!-- Location: src/main/webapp/WEB-INF/applicationContext.xml --> <!-- ... --> <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="[DATABASE-NAME]" /> <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> <!-- THIS CONFIGURATION WORKED PREVIOUSLY, NOW WITH MAVEN, IT'S IGNORED --> <property name="databasePlatform" value="[DIALECT]" /> </bean> <!-- ... --> 我没有使用任何 Maven Hibernate 插件,因为我只想要之前发生的默认行为。
- Maven 是否使这个“generateDdl”属性无效!?为什么!?我应该怎么办!?我找不到任何解决方案。
【问题讨论】:
-
你能发布你的 entityManagerFactory bean 定义吗?你有这个额外的属性:
create ? -
-
正如我所说的 Shawn Sherwood,这些东西以前有效。由于某种“神奇”的原因,它现在不起作用(在 Maven 之后)。
标签: spring hibernate maven ddl