u010407061
u010407061
采纳率45.5%
2015-06-01 09:17 阅读 1.8k

ssh 事物配置异常 悬赏20C币

20

我的问题是这样的:我在两个service中分别调用两个代码几乎相同的dao中方法查询数据库,现在是一个dao正常,另一个在getCurSession(MYSQL).createQuery(sql)句抛出异常,异常:
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
我按照百度的方法,在配置文件中加了这两句话后,
图片说明

报错改了:createsqlquery is not valid without active transaction

我的配置文件是:
图片说明
dao:
图片说明
service:
图片说明

图片说明两个都没有用@trancational注解

忘各位帮忙看看,谢谢了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    linysheart 林延松 2015-06-01 09:42

    图片说明
    写一个不以这些开头的service方法,比如testService()。看看是不是也是不行。。如果也不行话。就是事物配置的问题。。

    点赞 评论 复制链接分享
  • devmiao devmiao 2015-06-01 09:25
  • qq_20353583 西红士 2015-06-01 09:23
    <bean id="transactionManager"  
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory" />  
    </bean>      
    <!-- 配置服务层 -->  
    <bean id="userDaoAgency" class="com.dao.impl.UserDaoImpl">  
        <property name="sessionFactory" ref="sessionFactory" />  
    </bean>      
    <bean id="userDao"    
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">    
        <!-- 配置事务管理器 -->    
        <property name="transactionManager" ref="transactionManager" />       
        <property name="target" ref="userDaoAgency" />    
        <property name="proxyInterfaces" value="com.dao.UserDao" />  
        <!-- 配置事务属性 -->    
        <property name="transactionAttributes">    
            <props>    
                <prop key="*">PROPAGATION_REQUIRED</prop>  
            </props>    
        </property>    
    </bean>  
    
    点赞 评论 复制链接分享
  • u010906788 广州IT民工 2015-06-01 09:26

    事务方面应该使用Spring来控制吧。
    而且你这个是分布式事务么?两个Dao是使用不同数据库么?

    点赞 评论 复制链接分享
  • linysheart 林延松 2015-06-01 09:33

    图片说明

    图中这两个地方添加: 试试

    点赞 评论 复制链接分享
  • linysheart 林延松 2015-06-01 09:34

    图片说明

    这两个地方加:

     <tx:method name="*" rollback-for="Throwable" propagation="REQUIRED"/>
    

    试试。。刚才怎么代码片段没出来。。

    点赞 评论 复制链接分享
  • sumcul sumcul 2015-06-09 04:20

    我看到你是两个数据源,查看具体的出问题的数据源的配置、bean和dao的配置。应该是配置出错了。

    点赞 评论 复制链接分享

相关推荐