0

我在春天有以下休眠配置,服务器在很长一段时间后启动但没有连接到数据库(数据库上没有模式)。因此,应该给出错误消息或使用<prop key="hibernate.hbm2ddl.auto">create</prop>.

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method = "close"> 
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:mysql://dburl:3306"/>
    <property name="user" value="user"/>
    <property name="password" value="pass!"/>
</bean>


<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

    <property name="mappingResources">
        <list>
            <value>waf/resources/User.hbm.xml</value>
            <value>waf/resources/Post.hbm.xml</value>
            <value>waf/resources/Position.hbm.xml</value>
            <value>waf/resources/Comment.hbm.xml</value>
        </list>
    </property>

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">validate</prop>
            <!-- C3P0 CONNECTION POOL -->
            <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>              
            <prop key="c3p0.acquire_increment">1</prop>             
            <prop key="c3p0.idle_test_period">100</prop>
            <prop key="c3p0.max_size">20</prop>
            <prop key="c3p0.max_statements">50</prop>
            <prop key="c3p0.min_size">1</prop>
            <prop key="c3p0.timeout">10</prop>
        </props>
    </property>
    <property name="dataSource">
        <ref bean="dataSource"/>
    </property>
</bean>

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

你们能帮帮我吗?

4

3 回答 3

0

如果您正在使用连接池(如提到 c3po),则添加其他人提出的建议,然后在创建会话工厂时,它将尝试使用连接池支持的数据源,该数据源反过来将连接到数据库以预先创建和池连接。当你说它没有连接到数据库时——你怎么知道的?日志中有错误吗?我已经看到,如果 Hibernate 会话工厂无法自行配置,则会在日志中引发错误。

于 2012-09-18T13:12:49.820 回答
0

Hibernate 不使用hbm2ddl.auto. 它只是创建 | 创建下降 | 等表。

于 2012-09-13T19:23:42.343 回答
0

浏览 HBM 文件,您给出如下..

验证而不是创建

我希望这不会创建 DDL。你能检查一下吗?还是有问题的错字?

于 2012-09-13T19:26:36.533 回答