由以下原因引起:org.hibernate.HibernateException:必须显式设置 Hibernate 方言

Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

我在服务器 (Tomcat 7 - jdk 1.7) 上上传了我的 Web 应用程序 (Spring + Hibernate),但出现了这个错误:

Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

在我的电脑中,我有相同的配置(Spring、Hibernate、Tomcat 7、jdk 1.7、相同的库等)并且一切正常。

我查看了互联网,有人说我需要添加 hibernate.cfg.xml,但我从未在我的计算机上使用过它,而且一切正常。

这是我的 Spring 配置文件中的内容:

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
     <property name="sessionFactory" ref="sessionFactory" />            
</bean>     

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>             
    <property name="packagesToScan" value="com.jeansedizioni.model"/>            
</bean>   

 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
      <property name="driverClassName" value="${db.driver}" />  
      <property name="url" value="${db.url}" />  
      <property name="username" value="${db.user}" />  
      <property name="password" value="${db.pass}" /> 
</bean>  

 <bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     <property name="locations">
        <list>
           //here are user, pass etc. for the database
           <value>classpath:database.properties</value>                 
        </list>             
    </property>   
</bean>  

有人知道我的错误是什么吗?

提前致谢。

为您的 database.properties 文件定义一个 hibernate.dialect 属性

示例:

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

并将 hibernateProperties 添加到您的 sessionFactory bean 声明中,如下所示:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>             
  <property name="packagesToScan" value="com.jeansedizioni.model"/>
  <property name="hibernateProperties">
    <props>
      <prop key="hibernate.dialect">${hibernate.dialect}</prop>
    </props>
  </property>            
</bean> 

将此 属性 添加到您的 <bean id="sessionFactory"> 中:

<property name="hibernateProperties">
    <props>
        <prop key="hibernate.dialect">${hibernate.dialect}</prop>
        <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
        <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>             
    </props>
</property>

然后在你的配置文件中(你正在获取用户,密码,url)提到方言,如下所示:

hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update