Я установил в моем applicationContext
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
, и я пытаюсь поймать исключение DataAccessException в ManagedBean.У меня есть BusinessDelegate, где я устанавливаю @ Transactonal.
Проблема в том, что
try
{
operazioneOk = businessDelegate.insertAuto(newAuto);
}
catch (DataAccessException e)
{
System.out.println("autoBean");
}
улов, работа, даже если я не установил
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
но странно то, что в консоли у меня есть это исключение:
AVVERTENZA: SQL Error: 0, SQLState: null
GRAVE: L'operazione «batch» 0 insert into public.auto (marca, modello, anno, km, cilindrata, optional, prezzo, occasione, id) values (w, ww, w, w, w, w, w, 0, 12) è stata interrotta. Chiamare «getNextException» per scoprirne il motivo.
AVVERTENZA: SQL Error: 0, SQLState: 23505
GRAVE: ERROR: duplicate key value violates unique constraint "auto_marca_key"
Dettaglio: Key (marca)=(w) already exists.
GRAVE: Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
В обоих случаях.Я думаю, что что-то не работает.Помоги мне!