我正在使用spring编写一个简单的应用程序,我使用spring注释定义了我的daos和服务,并将hibernate定义为orm和事务管理器,如下所示:
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:env/hibernate.cfg.xml</value>
</property>
<property name="packagesToScan">
<list>
<value>com.skyfence.management.cm.model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
就像你可以看到我正在使用注释进行交易管理, 在此之前一切正常。 然后我添加了一个Logger Aspect来在每个方法之前和之后添加log4j打印输出,所以我将以下内容添加到我的applicationContext.xml
<aop:aspectj-autoproxy />
并创建了一个新的带注释的方面类:
@Aspect
@Component
public class LoggingAspect
{
}
问题是从那时起hibernate不再工作了,我得到以下异常: org.hibernate.HibernateException:找不到当前线程的会话
我怀疑通过添加方面,交易停止工作,但我不知道如何解决它
任何帮助将不胜感激,