dsf0075 2008-10-24 07:36 采纳率: 0%
浏览 140
已采纳

Spring Hibernate 整合问题?急

我写了一个小的ssh的demo,在tomcat下配置好后,启动没有报任何错误,service中用到hibernatetemplate,是用spring注入进去的,使用save方法想保存对象,控制台已经显示输出了insert语句,但数据库为插入任何记录.用debug查看hibernatetemplate,sessionFactory都有取到对象,但就是插入不了记录.帮忙分析下,是什么原因呢?
有没有遇到这种情况解决过的?

  • 写回答

3条回答 默认 最新

  • iteye_14948 2008-10-24 08:32
    关注

    应该是没有配置事务吧,在你的save方法,上下各加一行,把save方法包住,如下:
    [code="java"] getHibernateTemplate().getSessionFactory().openSession().beginTransaction();
    getHibernateTemplate().save(transientInstance);
    getHibernateTemplate().getSessionFactory().openSession().beginTransaction().commit();
    [/code]
    如果数据库里有了,那就说明确实是事务配置的问题。上面的代码只是帮你定位错误,千万不要这么用。
    之后的请查下spring事务配置,下面是我的spring配置文件片段:
    [code="java"]
    class="org.springframework.jndi.JndiObjectFactoryBean">


    class="org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter">



    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.DB2390Dialect
                </prop>
                <prop key="show_sql">true</prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>dm/domain/VehicleType.hbm.xml</value>
                <value>dm/domain/Vehicle.hbm.xml</value>
                <!--<value>dm/domain/OldVehicle.hbm.xml</value>-->
                <value>dm/domain/Driver.hbm.xml</value>
                <!--<value>dm/domain/OldDriver.hbm.xml</value>-->
                <value>dm/domain/DispatchTask.hbm.xml</value>               
            </list>
        </property>
    </bean>
    
    <!-- 定义事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref bean="sessionFactory" />
        </property>
    </bean>
    <!-- 定义事务拦截器 -->
    <bean id="transactionInterceptor"
        class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <property name="transactionManager">
            <ref bean="transactionManager" />
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="add*">PROPAGATION_REQUIRED</prop>
                <prop key="del*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="*">PROPAGATION_REQUIRED</prop>
            </props>
        </property>
    </bean>
    <!-- 定义自动配置事务处理 -->
    <bean id="beanNameAutoProxyCreator"
        class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <property name="beanNames">
            <list>
                <value>*Service</value>
            </list>
        </property>
        <property name="interceptorNames">
            <list>
                <value>transactionInterceptor</value>
            </list>
        </property>
        <!--<property name="proxyTargetClass" value="true" />-->
    </bean>
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备