Controle de transações do Spring com annotations não roda o RollBack

0 respostas
andersonlandim

Olá a todos,

Estou usando spring com hibernate e MYSQL. Estou tentando utilizar o controle de transações do spring com annotations, mas acho que não entendi direito. No código abaixo (um código de testes) na quarta iteração ocorre um erro, pois email não pode ser NULL. Contudo o banco não dá o ROLLBACK nas inclusoes anteriores. :cry:

@Override
    @Transactional(readOnly = false, propagation=Propagation.REQUIRES_NEW)
    public void cadastrar(Usuario usu) throws Exception{
       for (int i = 0; i < 7; i++) {
            Usuario usu1 = new Usuario();
            usu1.setAtivo('S');
            usu1.setDataCadastro(new Date());

            if (i != 4) {
               usu1.setEmail("teste" + i);
            }
            usu1.setLogin("teste" + i);
            usu1.setSobrenome("teste" + i);
            usu1.setNome("teste" + i);
            usu1.setSenha("teste" + i);

            getGenericDao().save(usu1);

        }
    }

Esse código abaixo eu retirei da documentação oficial do spring.

Spring.xml

<!-- enable the configuration of transactional behavior based on annotations -->
    <tx:annotation-driven transaction-manager="txManager"/>
    
    <!-- a PlatformTransactionManager is still required -->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- (this dependency is defined somewhere else) -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

Se alguém puder me dar uma ajuda… hehe. Tô meio enrolado nisso. Alguma apostila simples, tutorial, dica… qualquer ajuda é bem vinda!

vlw

Criado 22 de dezembro de 2010
Respostas 0
Participantes 1