1

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

1 回答 1

1

我找到了解决方案。

Maven对此有任何错误。

Hibernate 无法创建我的数据库,因为“方言”错误。

我记得我把方言从 MySQL 改成了 MySQL-InnoDB。Hibernate 正在记录这个问题,但我看不到它,因为 slf4j-simple 依赖项没有明确导入。

谢谢你的时间,肖恩。

于 2012-07-07T17:43:19.667 回答