Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Error

me indica que no se puede iniciar la transacción

ago. 27, 2023 10:11:30 A. M. org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] Exception in thread "main" java.lang.IllegalStateException: Transaction not successfully started at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:95) at br.com.alura.tienda.tests.RegistroDeProducto.registrarProducto(RegistroDeProducto.java:40) at br.com.alura.tienda.tests.RegistroDeProducto.main(RegistroDeProducto.java:15)

1 respuesta

Hola Héctor,

El error que estás enfrentando es común cuando intentas hacer un commit de una transacción que no ha sido iniciada correctamente.

En el código de la clase RegistroDeProducto, asegúrate de que estás iniciando la transacción antes de intentar hacer el commit. Debería ser algo similar a esto:

EntityManager em = ... // obtén la instancia de EntityManager
em.getTransaction().begin(); // inicia la transacción

// Aquí va tu código para registrar el producto

em.getTransaction().commit(); // hace commit de la transacción

Si ya estás haciendo esto, entonces es posible que estés intentando hacer commit en la transacción en un lugar incorrecto en tu código, o que estés intentando hacer commit dos veces en la misma transacción.

Si este no es el caso, puede ser que alguna excepción esté siendo lanzada antes de que la transacción sea iniciada, lo que podría causar que el código que inicia la transacción no se ejecute.

Por último, asegúrate de que estás manejando correctamente las excepciones y cerrando la transacción y el EntityManager en un bloque finally, para asegurarte de que los recursos se liberen correctamente incluso si ocurre una excepción.

Espero que esto te ayude a solucionar el problema. Si no es así, por favor proporciona más detalles sobre tu código.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.