当没有可用的连接时,必须设置'hibernate.dialect'

Gle*_*eeb 5 spring hibernate hsqldb c3p0

我正在尝试运行一个hello world:Spring/Hibernate with HSQLDB和C3PO连接池.相同的代码适用于mySQL(只有不同​​的方言和驱动程序)

我已经运行了数据库,我可以使用swing GUI连接它.但是当我尝试运行我的应用程序时,我遇到了启动错误.以下是详细信息:

1:错误 -

信息:初始化Spring root WebApplicationContext [ERROR] [pool-2-thread-1 05:20:08](JDBCExceptionReporter.java:logExceptions:101)无法从底层数据库获取连接![错误] [pool-2-thread-1 05:20:08](ContextLoader.java:initWebApplicationContext:220)上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建ServletContext中定义名为'sessionFactory'的bean时出错resource [/WEB-INF/hibernate-context.xml]:调用init方法失败; 嵌套异常是org.hibernate.HibernateException:当org.springframework.beans.factory上的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)中没有可用的连接时,必须设置'hibernate.dialect'. .support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)......

2:hibernate-context.xml -

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

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.gleeb.sample.model" />
    <property name="hibernateProperties">
        <props>
            <!-- <prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> -->
            <prop key="dialect">org.hibernate.dialect.HSQLDialect</prop>
            <prop key="show_sql">false</prop>
            <prop key="hbm2ddl.auto">create</prop>
        </props>
    </property>
</bean>

        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close" p:driverClass="org.hsqldb.jdbc.JDBCDriver"
    p:jdbcUrl="jdbc:hsqldb:hsql://localhost/testdb" p:user="sa"
    p:password="" p:acquireIncrement="5" p:idleConnectionTestPeriod="60"
    p:maxPoolSize="100" p:maxStatements="50" p:minPoolSize="10" />

<!-- Declare a transaction manager -->
<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager"
    p:sessionFactory-ref="sessionFactory" />
Run Code Online (Sandbox Code Playgroud)

cha*_*nes 0

我有带hibernate.前缀的会话工厂属性。

<property name="hibernateProperties">
    <value>
        hibernate.dialect=org.hibernate.dialect.HSQLDialect
        hibernate.hbm2ddl.auto=update
        hibernate.show_sql=false
        hibernate.format_sql=false
    </value>
</property>
Run Code Online (Sandbox Code Playgroud)