1

これは私の春のコンテキストファイルです

<!-- <context:property-placeholder location="classpath:jdbc.properties" />-->
<context:component-scan base-package="com.max.premcalc" />

<tx:annotation-driven transaction-manager="hibernateTransactionManager" />

<bean id="jspViewResolver"  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/view/" />
    <property name="suffix" value=".jsp" />
</bean>

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/inquizzitiveds"/>

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

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.max.premcalc.domain.PremiumCalc</value>
            <value>com.max.premcalc.domain.Inputparam</value>
            <value>com.max.premcalc.domain.RiderInput</value>
            <value>com.max.premcalc.domain.Rider</value>
            <value>com.max.premcalc.domain.Product</value>
            <value>com.max.premcalc.domain.Products</value>
        </list>
    </property>
    <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>
</bean>

<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="MainController" class="com.max.premcalc.controller.MainController" />
<bean id = "calcDao" class="com.max.premcalc.dao.CalcDaoImpl"/>
<bean id = "calcService" class="com.max.premcalc.service.CalcServiceImpl"/> 
<bean id = "inputparam" class = "com.max.premcalc.domain.Inputparam"/>

しかし、私はこのエラーが発生しています:

Injection of autowired dependencies failed; nested exception is 
org.springframework.beans.factory.BeanCreationException: Could not autowire field: private 
com.max.premcalc.service.CalcService com.max.premcalc.controller.MainController.calcService; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'calcServiceImpl': Injection 
of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: 
Could not autowire field: com.max.premcalc.dao.CalcDao com.max.premcalc.service.CalcServiceImpl.calcDao; nested 
exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': 
Injection of autowired dependencies failed; nested exception is 
org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void 
com.max.premcalc.dao.CalcDaoImpl.setSessionFactory(org.hibernate.SessionFactory); nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in 
ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Invocation of init method failed; nested exception is 
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
4

2 に答える 2

2

プロパティを設定する必要があります

hibernate.dialect

hibernate (persistence.xml または bean 宣言) 構成では、値はデータベースによって異なります。次に例を示します。

Postgres: org.hibernate.dialect.PostgreSQL82Dialect
Oracle: org.hibernate.dialect.Oracle10gDialect

可能なすべてのオプションはここでリッスンします

たとえば、サンプルの persistence.xml は次のようになります。

<persistence-unit>
    ...
    <properties>
        ...
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        ...
    </properties>
</persistence-unit>

プロパティ ファイルにキーがあるかどうかを確認してくださいhibernate-dialect

于 2013-09-17T11:34:27.817 に答える
0

スタックトレースはかなり明確です

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

どうやら休止状態はメタデータを使用して使用するデータベースの種類を取得できないため、休止状態の方言を明示的に構成する必要があります。

于 2013-09-17T11:29:53.327 に答える