Hibernate无法启动

时间:2012-09-13 19:04:51

标签: java mysql spring hibernate

我在spring上有以下hibernate配置,服务器在很长一段时间后启动但没有连接到DB(DB上没有架构)。因此,可以提供错误消息或使用<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>

你们可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

Hibernate不会使用hbm2ddl.auto创建架构。它只是创造了| creates-drop |等表。

答案 1 :(得分:0)

浏览HBM文件,您已经提供了以下内容..

验证而不是创建

我希望这不会创建DDL。你能检查一下吗?或者这是一个错字?

答案 2 :(得分:0)

如果您正在使用连接池(您提到的是c3po),则添加其他人提议的内容然后在创建会话工厂时,它将尝试使用连接池支持的数据源,而后者又将连接到数据库 - 创建和池连接。当你说它没有连接到数据库时 - 你怎么知道的?日志中是否有错误?我已经看到,如果Hibernate会话工厂无法自行配置,它会在日志中抛出错误。