你userinfoDAO里的有save这个方法吗?
或者用一个别的方法名,例如,saveObject。然后配置文件改为<prop key="save*">PROPAGATION_REQUIRED </prop> 
</props> ,先看看。

解决方案 »

  1.   

    我想看一下你处理Blob字段的代码
      

  2.   

    public void save(Userinfo transientInstance) {
    log.debug("saving Userinfo instance");
    try {
    getHibernateTemplate().save(transientInstance);
    log.debug("save successful");
    } catch (RuntimeException re) {
    log.error("save failed", re);
    throw re;
    }
    }
    这是dao里的方法...hiberbate
      

  3.   

    楼上的就是了  用的hibernate 需要为blob做特殊的处理吗
      

  4.   

    org.springframework.jdbc.support.lob.LobCreatorUtils.registerTransactionSynchronization(LobCreatorUtils.java:79) 
    你看抛出的异常,第一段局势lob处理的错误.
    肯定是你没有对blob字段进行特殊处理的
    然后你看下的spring的配置,用的是Hibernate,为什么把事物管理器配制成JDBC,应该是HibernateTransactionManager才对啊
      

  5.   

    好了!
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.mysql.jdbc.Driver">
    </property>
    <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
    <property name="username" value="root"></property>
    <property name="password" value="lipei"></property>
    </bean>
    <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.MySQLDialect
    </prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>org/lipei/struts/temp/Userinfo.hbm.xml</value>
    <value>cn/trade/temp/Goodsphoto.hbm.xml</value>
    <value>cn/trade/temp/User.hbm.xml</value>
    <value>cn/trade/temp/Goods.hbm.xml</value></list>
    </property>
    <property name="lobHandler" ref="lobHandler" /> </bean>


      <bean id="lobHandler"
    class="org.springframework.jdbc.support.lob.DefaultLobHandler"
    lazy-init="true">
    </bean> 

        <!-- 配置事务拦截器-->
        <bean id="transactionInterceptor"
            class="org.springframework.transaction.interceptor.TransactionInterceptor">
            <!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
            <property name="transactionManager" ref="transactionManager" />
            <property name="transactionAttributes">
                <!-- 下面定义事务传播属性-->
                <props>
                    <prop key="insert*">PROPAGATION_REQUIRED</prop>
                    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="*">PROPAGATION_REQUIRED</prop>
                    <prop key="save*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
        </bean>
        <!-- 定义BeanNameAutoProxyCreator,该bean是个bean后处理器,无需被引用,因此没有id属性
            这个bean后处理器,根据事务拦截器为目标bean自动创建事务代理
            <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
            指定对满足哪些bean name的bean自动生成业务代理 -->
        <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
            <property name="beanNames">
                <!-- 下面是所有需要自动创建事务代理的bean-->
                <list>
                    <value>userinfoService</value>
                   
                </list>
                <!-- 此处可增加其他需要自动创建事务代理的bean-->
            </property>
            <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
            <property name="interceptorNames">
                <list>
                    <value>transactionInterceptor</value>
                    <!-- 此处可增加其他新的Interceptor -->
                </list>
            </property>
        </bean>
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref bean="sessionFactory" />
            </property>
        </bean> <bean id="userinfoDAO" class="org.lipei.dao.UserinfoDAO">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>
    <bean id="userinfoService"
    class="org.lipei.struts.service.UserinfoService" abstract="false"
    lazy-init="default" autowire="default" dependency-check="default">
    <property name="userinfoDAO">
    <ref bean="userinfoDAO" />
    </property>
    </bean>
    <bean name="/userinfo"
    class="org.lipei.struts.action.UserinfoAction" abstract="false"
    lazy-init="default" autowire="default" dependency-check="default">
    <property name="userinfoService">
    <ref bean="userinfoService" />
    </property>
    </bean>
    <bean name="/userlist"
    class="org.lipei.struts.action.UserlistAction" abstract="false"
    lazy-init="default" autowire="default" dependency-check="default">
    <property name="userinfoService">
    <ref local="userinfoService" />
    </property>
    </bean>

    <!--bean name="/dispPic"
    class="org.lipei.struts.action.DispPicAction" abstract="false"
    lazy-init="default" autowire="default" dependency-check="default">
    <property name="userinfoDAO"> 
    <ref bean="userinfoDAO" />
    </property>
    </bean-->

    </beans>