Controle Transações Spring + Hibernate

0 respostas
Diego.G.A

Senhores

Estou tentando configurar o spring para gerenciar as minhas transações, eu ja pesquisei na internet e achei varios
exemplos e a minha configuração esta igual a estes exemplos.
Sendo que ao executar minha aplicações eu anoto o meu método com @Transactional e após salvar um registro eu estou forçando um erro para a
aplicação fazer rollback sendo que a mesma não desfaz o que foi gravado.

applicationContext.xml

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClass}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml" /> <property name="dataSource" ref="dataSource"/> </bean> <tx:annotation-driven transaction-manager="txManager" /> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>

método anotado

@Transactional(readOnly=true, propagation=Propagation.REQUIRES_NEW) public boolean salvar(Pessoa pessoa) { try { if(pessoa == null) { throw new RuntimeException("application.object.null"); } if(pessoa.getNome() == null || pessoa.getNome().equals("")) { throw new BusinessException("pessoa.label.nome.empty"); } if(pessoa.getSobreNome() == null || pessoa.getSobreNome().equals("")) { throw new BusinessException("pessoa.label.sobreNome.empty"); } Integer id = pessoaDao.save(pessoa); if(id != null && id > 0) { logger.debug("==========> Object saved with identity ("+ id +")"); throw new RuntimeException("application.object.null"); //return true; } return false; } catch (DaoException ex) { throw new RuntimeException(ex); } }

alguém sabe porque esta acontecendo isso?

Criado 26 de abril de 2012
Respostas 0
Participantes 1