由以下原因引起: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
我在服务器 (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