SPRING JDBC [PROBLEMAS CON 'COMMIT' EN LA APLICACIÓN]
Que tal chicos una consulta, estoy manejando "SimpleJdbcCall" y estoy teniendo problemas al momento de manejar las transacciones con SPRING. El escenario es el siguiente: "Le estoy mandando a mi método de persistencia una LISTA de registros a REGISTRAR por medio de un PROCEDURE", la idea que es dicho PROCEDURE me responde un 1 si es OK (El PROCEDURE no maneja el COMMIT) y al iterar toda la lista yo valida que me si me responde != 1 haga un break y setee un false. Con dicho false valida fuera del FOR que si es false hago el ROLLBACK sino el COMMIT de todas las transacciones que tengo cargadas. Algo similar que se hace cuando se maneja JDBC de forma nativa. Lo que pasa es que al hacerlo así por mas que el PROCEDURE me responde != 1 ejecuta el un COMMIT, "SIEMPRE ME REGISTRA EL INSERT" (como un Auto-Commit = true). Y eso es lo que no quiero que ejecute un Auto Commit pero manejado con SPRING. (Quiero poder controlar el COMMIT). Aquí mi configuración:
CODIGO JAVA:
CONFIGURACIÓN DE SPRING (applicationDatasource.xml):
Algún comentario para solucionar este problema ?. Gracias.
Saludos.
- Inicie sesión o regístrese para enviar comentarios
La etiqueta code nos ayuda mucho
Antes que nada te recomiendo utilizar la etiqueta
";
"
code. Ya que sin la etiqueta queda cómo:
public String theString = "sin etiqueta
Y con la etiqueta queda cómo:
Luego, otra cosa, ¿podrías poner la pila de traza (stack
trace)?... Si hay un error deberías poder poner cual es
o qué es.
Saludos.
RE:Opciones de visualización de comentarios
No existe error alguno, simplemente no logra hacer bien el manejo de la transaccionalidad.
Saludos.
Re:Re:Opciones de visualización de comentarios
Creo se ve mejor asi:
Entonces no hay nada más que decir , el único que puede probar el código eres tu.
Tendríamos que tener todo tu proyecto y hacerlo funcionar para ver cual es el problema.
SOLUCIÓN: PROBLEMA 'TRANSACCIONALIDAD' EN LA APLICACIÓN
Hola,
La solución esta en que no se estaba manejando de forma eficiente el 'PlatformTransactionManager', 'TransactionDefinition', 'TransactionStatus' y parte del Mapping de SPRING. He acomodando esas partes y con ello ya valide que la TRANSACCIONALIDAD, ya puedo controlarla desde la aplicación y hace COMMIT o ROLLBACK en el momento se requiera. Gracias por los aportes.
CÓDIGO JAVA:
MAPPING SPRING:
SOLUCIÓN: PROBLEMA CON 'COMMIT' EN LA APLICACIÓN.
Aquí comparto la solución. Estaba en el manejo de: 'TransactionDefinition' y 'TransactionStatus', no lo estaba manejando correctamente al igual que el MAPPING del XML de Spring del transaction. He hecho algunas modificaciones en el CÓDIGO y MAPPING. Ya validé su funcionamiento ya ahora de esta forma ya el commit manejado desde la aplicación y funcionando bien. Gracias.
CÓDIGO JAVA:
MAPPING SPRING:
mmmmmm
podrias subir tu appContext completo y amm porq no estas usando la inyeccion de dependencia podrias usarla de 2 forma delarando las propiedades y generando sus set para que spring inyecte todo o usando la anotacion @autowired no me queda muy calro que pretendes hacer? porq usar un procedure? lo podras hacer todo dese java con un api de persistencia cono jpa o hibernate nose amm quisiera entender que pretendes para si de alquna forma te puedo ayudar pues ayudar o confundirte mas jajajaj OK Ya me calmo saludos.
JDBC
Doc en estos momentos no tengo las fuentes pero maniana las debo estar subiendo. Si estan inyectando con el @autowired, ya lo valide su funcionamiento. Sobre el manejo de PROCEDURE, el DUMMY esta planteado de esa manera ya que en el trabajo es requerimiento por segmentacion del motor de datos. Sobre los archivos de mapping los tengo separados en base a su funcionalidad ese que mostre solo contiene el de acceso a datos.
Saludos