这个弹簧配置怎么可能不起作用?

时间:2016-04-26 19:14:25

标签: spring hibernate

我得到了:没有活动事务,getNamedQuery无效: org.hibernate.HibernateException:没有活动事务,getNamedQuery无效

org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:340)
    $Proxy10.getNamedQuery(Unknown Source)

这是我的配置

    ...
    <context:annotation-driven/>
    <beans:bean id="transactionManager" 
      class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <beans:property name="sessionFactory" ref="sessionFactory" />
    </beans:bean>       
    <tx:annotation-driven transaction-manager="transactionManager"/>
    ...

另外,我添加了上下文:注释驱动,因为tr:annotation-driven不起作用,<tx:annotation-driven/>是否使用从{hibernate获取自己的会话的transactionManager

我在带注释的事务中使用了hibernate3派生的sessionFactory,所以如何配置spring来执行此操作?

1 个答案:

答案 0 :(得分:0)

事务管理器依赖于会话工厂,它用于管理事务。

通过添加 foreach($arrKeywords[$i] as $strKeyword) { $arrClauses[] = ['span_term' => ['transcript' => '"'.$strKeyword.'"']]; } $objQuery->query->bool->should[]->span_near = [ 'clauses' => $arrClauses, 'slop' => 100000000, 'in_order' => true ]; ,您可以告诉Spring如何划分事务。在这种情况下,您可以使用注释。

请参阅文档页面如何使用XML Schema-based configuration

<tx:annotation-driven />