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.