【发布时间】:2011-06-05 14:12:46
【问题描述】:
我已经在我的applicationContext中设置了
<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
在这两种情况下。 我认为有些东西行不通。 帮帮我!
【问题讨论】:
标签: hibernate spring exception jsf