刚刚学Hibernate发现这个问题一直不知道为啥:Spring和Hibernate整合后,如果配置文件采用同一个的话,在调用HibernateTemplate的save方法会直接提交到数据库,若配置文件分离的话,在调用HibernateTemplate的save方法却不会提交到数据库,这是为什么呢?

解决方案 »

  1.   

    整合一起的配置如下:
    <bean name="dataSource"
    class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass"
    value="oracle.jdbc.driver.OracleDriver">
    </property>
    <property name="user" value="dfish"></property>
    <property name="password" value="dfish"></property>
    <property name="jdbcUrl"
    value="jdbc:oracle:thin:@127.0.0.1:orcl">
    </property>
    <property name="maxPoolSize" value="20"></property>
    <property name="minPoolSize" value="1"></property>
    <property name="initialPoolSize" value="5"></property>
    <property name="maxStatements" value="300"></property>
    </bean> <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>com/bean/TA.hbm.xml</value>
    </list>
    </property>

    </bean>

    <bean name="hibernateTemplate"
    class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <bean name="testMain" class="com.test.TestMain">
    <property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean>
    分开的配置如下:
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    </property>
    </bean>

    <bean name="hibernateTemplate"
    class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <bean name="testMain" class="com.test.TestMain">
    <property name="hibernateTemplate" ref="hibernateTemplate"></property>
    </bean><property name="myeclipse.connection.profile">
    oracleconncet
    </property>
    <property name="connection.url">
    jdbc:oracle:thin:@127.0.0.1:1521:orcl
    </property>
    <property name="connection.username">dfish</property>
    <property name="connection.password">dfish</property>
    <property name="connection.driver_class">
    oracle.jdbc.driver.OracleDriver
    </property>
    <property name="dialect">
    org.hibernate.dialect.Oracle9Dialect
    </property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <mapping resource="com/bean/TA.hbm.xml" />