Различия между JTA и не-JTA можно найти в этой статье
Чтобы получить доступ к соединению JDBC в режиме JTA, вы можете обратиться к этой статье
с EntityManager, он бросил
IllegalStateException: JTA
EntityManager не может использовать
исключение getTransaction ().
Я думаю, что эта ошибка возникает из-за того, что контейнер управляет вашей транзакцией, а не вы (в противном случае это будет не jta, и вы будете использовать application-managed-entityManager)
Причина, по которой вы не можете получить доступ к транзакции, заключается в том, что вы можете затем вызывать коммит или другие методы, которые должны выполняться контейнером Java EE.
с поиском источника данных и был
в состоянии получить объект подключения, но
не мог начать транзакцию с этого
javax.sql.Connection object.
Я думаю, это уже здорово, так как вы уже можете получить соединение из источника данных, который является чистым способом сделать это. Я не думаю, что вам нужно беспокоиться о транзакции, поскольку она уже управляется используемым вами контейнером Java EE. Так почему бы просто не заняться делами со связью уже? : -)