Je potreba si prostudovat, jak funguje springovsky preklad vyjimek
http://static.springframework.org/spring/docs/1.2.x/reference/dao.html#dao-exceptions
Vami zminovany kod, pravdepodobne vyhodi DataIntegrityViolationException
viz
Dekuji vsem za odpovedi.
Moje predstava je takova, ze bych v business vrstve obslouzil onu
vyjimku DataIntegrityViolationException a na jejim zaklade vyhodil
svoji vyjimku (treba ExistingUsernameException). Ale nedari se mi
zachytit DataIntegrityViolationException vyjimku v DAO implementaci
try{
dao.doSomething():
}catch(DataAccessExcpetion e){
}
Pokud je vase DAO implementace potomkem HibernateDaoSupport musi tohle
fungovat. Potom si jenom zkontrolujte jestli to opravdu vyhozuje
zminenou DataIntegrityViolationException.
Petr Gola napsal(a):
Dekuji vsem za odpovedi.
Moje
Petr Gola wrote:
Bohuzel, stale se nemohu dobrat k vysledku.
Pricina je ta, ze Hibernate neprovede operaci v databazi ihned, ale az
pri ukonceni transakce (to je defaultni chovani), kdy se pokusi provest
vsechny zmeny najednou. V tomto pripade je pouzito Spring AOP, kdy se
commit provede
Mockrat dekuji.
Mam jeste jeden dotaz. Pokud obsahuje zaznam vice unique polozek -
jsem schopen z vyjimky nejak zjistit, ktera constraint je duvodem?
Pripadne jak?
Vsiml jsem si na vystupu:
(util.JDBCExceptionReporter 72) ERROR: duplicate key violates
unique constraint
Dobry den,
domnivam se, ze systematictejsi by bylo zavest do aplikace krome validace
vstupnich dat (formatu)
take validaci na urovni dat. V teto fazi by se kontrolovala korektnost vstupu
vzhledem k omezenim,
ktera vyplyvaji z logiky datoveho modelu.
Ve vasem pripade jde napr. o pozadavek