Spring não comita transações

7 respostas
rafaelunp

Prezados,

Estou iniciando no spring e estou com o seguinte problema: não consigo fazer o spring controlar (comitar as transações). Estou usando spring 2.5 e hibernate 3.
Fiz as seguintes configurações:

Spring-servlet.xml

<context:component-scan base-package="com.apress.expertspringmvc" />
	<context:annotation-config />

	<tx:annotation-driven transaction-manager="transactionManager" />
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
AirportController.java
@Controller
@RequestMapping({"/airport"})
@Transactional
public class AirportController extends SimpleFormController{

... codigo ...

@Override
	protected ModelAndView onSubmit(Object command) throws Exception {
		Airport persist = (Airport) command;
		airportDAO.create(persist);

		ModelAndView mav = new ModelAndView(getSuccessView());
		mav.addObject("airport", persist);
		return mav;
	}

}

Metodo da persistencia:

@Override
	public T create(T entity) {
		getSession().saveOrUpdate(entity);
		return entity;
	}

OBS1: Se dentro do metodo create eu iniciar e comitar a transacao (na mão). funciona!
OBS2: Se na página após o envio da resquisição eu listar os registros cadastrados na base, o novo registro é exibido. Mas se eu for via banco e der um select na tabela, a mesma está travada.
Eu mato a aplicação, a tabela é liberada e o registro não é persistido.

Grato pela atenção.

7 Respostas

bsl.lacerda

Chute. :lol:

Será que alguma coisa a ver com a propagação da transação?
@Transactional(propagation = Propagation.SUPPORTS)

Existem outros tipos de propagação.

rafaelunp

Bruno Lacerda:
Chute. :lol:

Será que alguma coisa a ver com a propagação da transação?
@Transactional(propagation = Propagation.SUPPORTS)

Existem outros tipos de propagação.

Tentei isso também. Continua na mesma… :frowning:

bsl.lacerda

Dá uma olhada neste link aqui.
http://cwiki.apache.org/S2WIKI/struts-2-spring-2-jpa-ajax.html
Vc está usando MVC do spring certo?
No tópico é Struts2, mas dá uma olhada na configuração do spring (apesar de que eu não vi nada de diferente no seu xml de conf do Sprig)

rafaelunp

Isso, Spring MVC…
Pois é tá tudo configurado, muito parecido… diferenças apenas que estou usando Hibernate e o exemplo é com JPA…

Que onda…

jgbt

uma duvida:
seu banco de dados suporta transações?

[]´s

rafaelunp

Sim.

SQL Server 2005

rafaelunp

Mais ninguém com sugestões?!

Já mudei varias partes do codigo, já coloquei tudo com anotations, voltei pra xml, implementei tudo que ‘poderia’, através dos varios exemplos da net…
E nada…

Estou aceitando sugestões…

Abraços

Criado 24 de julho de 2009
Ultima resposta 26 de jul. de 2009
Respostas 7
Participantes 3