Spring 混合声明bean和注释bean:org.hibernate.hibernateeexception未找到当前线程的会话

Spring 混合声明bean和注释bean:org.hibernate.hibernateeexception未找到当前线程的会话,spring,hibernate,session,transactional,transactionmanager,Spring,Hibernate,Session,Transactional,Transactionmanager,我找不到当前线程的会话。 我想问题在于混合声明性xml bean和带注释的bean。 接下来,我将恢复配置 我的图书馆项目 春季3.1.4 冬眠4 applicationContext.xml AccountDAO.java com.mycompany.dao AccountService和AccountDAO是事务性的 现在,在AccountController.java中,我调用accountService.listcounts,一切正常 但,若我在代码段之后将AccountService注

我找不到当前线程的会话。 我想问题在于混合声明性xml bean和带注释的bean。 接下来,我将恢复配置

我的图书馆项目 春季3.1.4 冬眠4

applicationContext.xml

AccountDAO.java com.mycompany.dao

AccountService和AccountDAO是事务性的

现在,在AccountController.java中,我调用accountService.listcounts,一切正常

但,若我在代码段之后将AccountService注入PermissionEvaluator类,则AccountController在调用AccountService.listAccounts时找不到当前线程的会话

PermissionEvaluator.java com.mycompany.PermissionEvaluator

我将PermissionEvaluator与AccountService一起使用,AccountDAO由model-core-security.xml中声明的expressionHandler bean中的组件扫描创建

这可能是找不到currend线程会话的原因吗?

@Transactional 你们的进口包装是什么

导入org.springframework.transaction.annotation.Transactional

您可以尝试导入javax.transaction.Transactional

<tx:annotation-driven transaction-manager="transactionManager" /> 

<context:component-scan 
    base-package="com.mycompany.dao.core, com.mycompany.services.core,
                  com.mycompany.permissionEvaluator" />

<import resource="model-core-security.xml" />

<bean id="transactionManager"
    class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
... (sessionFactory ecc...)
<bean id="expressionHandler"
class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
    <property name="permissionEvaluator" ref="permissionEvaluator" />
</bean>

<security:global-method-security
    pre-post-annotations="enabled">
    <security:expression-handler ref="expressionHandler" />
</security:global-method-security>
@Service("accountService")
@Transactional
public class AccountServiceImpl implements AccountService {

    @Resource
    private AccountDAO accountDAO;

   ...
}
@Repository
@Transactional
public class HibernateAccountDAOImpl implements AccountDAO {

   ...query...
}
Component("permissionEvaluator")
public class PermissionEvaluatorImpl implements PermissionEvaluator {

    @Resource
    private AccountService accountService;

    ...
}