Это типичный случай, когда само совершение ошибки не выполняется. Наиболее типично, когда в базе данных есть ограничение, что не известно уровню JPA. Например, в столбце таблицы базы данных может быть уникальное ограничение, которое не определено в JPA, в этом случае коммит будет выдавать ошибку. Итак, мое предложение проверяет возможность нарушения ограничений базы данных. Кроме того, вы должны поймать javax.transaction.RollbackException
вокруг вашей сделки:
try {
entityManager.getTransaction().begin();
...
entityManager.getTransaction().commit();
} catch (RollbackException e1) {
System.out.println(e1.getMessage());
System.out.println(e1.getCause());
throw ...;
}
e1.getCause()
должен содержать нарушенное ограничение. По крайней мере, при использовании цивилизованной базы данных и драйвера JDBC :).
Какая ошибка у вас возникла? – Simiil