以前,我的 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”属性无效!?为什么!?我该怎么办!?我找不到任何解决方案。