我得到了:没有活动事务,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来执行此操作?
答案 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 />