Atualizar Spring 2.0.4 para 2.5.5 - HibernateException: createCriteria is not valid without active transaction
Oi,
Eu atualizei a versão do spring de 2.0.4 para 2.5.0 e minha aplicação apresenta a seguinte exception:
org.hibernate.HibernateException: createCriteria is not valid without active transaction
O método testado é o seguinte: getUserByLogin
public class UsuarioDAOImpl {
private SessionFactory sessionFactory;
public User getUserByLogin(String login) {
Session session = getSession();
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.eq("login", login));
return (User) criteria.uniqueResult();
}
protected Session getSession() {
return getSessionFactory().getCurrentSession();
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}
Aqui tem a parte relevante do meu application context
<bean id="txInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributeSource" ref="transactionAttributeSource" />
</bean>
<bean id="transactionAttributeSource" class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
<property name="properties">
<value>
delete*=PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
add*=PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
*=readOnly
</value>
</property>
</bean>
<bean id="autoProxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<value>txInterceptor</value>
</property>
<property name="beanNames">
<value>*DAO</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="sessionFactory" name="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configLocation" value="${hibernate.config.location}" />
</bean>
Alguém saberia se há alguma diferença no gerenciamento de transações com as versões citadas?