我在我的applicationContextDataAccessException的不工作
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
設置,我試圖抓住在ManagedBean的DataAccessException異常。 我有我設置@Transactonal的BusinessDelegate。
的問題是:
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
在這兩種情況下。 我覺得有些東西不起作用。 幫幫我!
我知道:重複鍵是我的問題,但如果我趕上例外,我總是看到堆棧跟蹤並至少的System.out.println(「autoBean」); – 2011-01-08 10:35:56