У меня есть слой дао:
@Transactional
public class DatabaseCollectionDao implements IDatabaseCollectionDao {
@PersistenceContext
private EntityManager entityManager;
@Override
public void create(Collection collection) {
entityManager.persist(collection);
}
}
Это работает правильно , но:
- Когда база данных недоступна, у меня есть SocketException .
- Когда база данных содержит дубликат ключа, у меня есть SQLIntegrityConstraintViolationException
Я пытаюсь попробовать / поймать внутри метода создания:
@Override
public void create(Collection collection) {
try{
entityManager.persist(collection);
} catch (SQLIntegrityConstraintViolationException e){
//do smth
}
}
Но Intellij говорит, что никогда не выбрасывается .
Когда я пытаюсь попытаться / поймать Исключение У меня UnexpectedRollbackException .
Как обрабатывать исключения с помощью JPA entityManager?
update : попытка удалить @Transactional ничего не дала
PSконечно, я пытался попробовать / поймать его в более высоких слоях.Я не знаю, что я могу попробовать еще, чтобы решить это.