Tag: SPRING-TRANSACTIONS
¿Cómo puedo evitar la concurrencia en las transacciones de Spring? La situación es que se realizan dos solicitudes en paralelo al método siguiente: @Transactional public save() { Optional<example> result = repository.findById(1); if(!result.isPresent()) { Example example = new Example(); example.setParam1(1); example.setParam2(1); example.setParam3(1); example.setParam4(1); example.setParam5(1); example.setParam6(1); example.setParam7(1); example.setParam8(1); repository.save(example); } } Por . . . Read more
Estoy obteniendo un java.sql.SQLSyntaxErrorException: ORA-00900: Declaración SQL no válida después de mover las anotaciones @Transactional y @Modifying desde los métodos del repository a los métodos del servicio: @Repository("someRepository") public interface SomeRepository extends CrudRepository<SomeEntity, String>{ //¡Mi código funciona si las siguientes dos líneas están descomentadas! //@Transactional //@Modifying @Query(nativeQuery = true, value . . . Read more
Estoy usando BeanPostProcessor que ejecuta algún código después de que se completen mis métodos de Service. Pero mi Service también está marcado con @Transactional. ¿Este “desencadenador” se ejecuta después o antes del final de la Transacción en esos métodos? @Component public class MethodBeanPostProcessor implements BeanPostProcessor { @Override public Object postProcessAfterInitialization(Object . . . Read more
Quiero bloquear la escritura en una fila de una base de datos para no permitir que otra transacción la modifique (desde cualquiera de las pods en un entorno con clúster). Estoy teniendo problemas en un entorno con clúster, donde tenemos 3 pods de aplicación. Intenté usar @Lock(LockModeType.PESSIMISTIC_WRITE) pero no está . . . Read more
Me gustaría revertir una transacción para los datos en caso de errores y, al mismo tiempo, escribir el error en la base de datos. No puedo hacerlo con anotaciones transaccionales. El siguiente código produce un error en tiempo de ejecución (1/0) y aún escribe los datos en la base de . . . Read more