Sie verwenden den Container, um die Persistenz zu verwalten. Durch die Verwendung der Transaktion REQUIRED startet JPA für jeden Aufruf der Datenbank eine neue Transaktion. Daher ist es nicht erforderlich, eine Transaktion innerhalb der gespeicherten Prozedur zu starten oder festzuschreiben. Tatsächlich ist es eine schlechte Idee.
Sie erwähnen nicht, ob Sie eine neue Transaktion in der gespeicherten Prozedur starten, sondern nur, dass Sie dort ein Commit haben. Wenn Sie keine (neue) Transaktion starten, wird dieser Commit Probleme verursachen. Selbst wenn Sie das tun, ist es unnötig, das ist die Art von Dingen, für die wir JPA verwenden, um damit zu beginnen.