Ahoj, chci vymazat JPA entitu, ktera muze byt refencovana pres cizi klice. V takovem pripade chci uzivateli zobrazit nejake hlaseni "nelze vymazat". Klasicke JDBC reseni bych delal pres DELETE FROM ..., odchytnu SQLException a zobrazim hlaseni. V JPA/Hibernate mohu delat neco podobneho:
try { em.remove(...); em.flush(); } catch () { // nelze vymazat } Tady mne zarazi, ze: 1. catch chyti jakousi obecnou javax.persistence.PersistenceException (nested org.hibernate.exception.GenericJDBCException a dalsi nested java.sql.BatchUpdateException: failed batch) 2. Hibernate zaloguje chyby: 14:43:09,890 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null 14:43:09,890 ERROR [JDBCExceptionReporter] failed batch 14:43:09,890 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session Tak si rikam, ze to asi nebude spravne reseni, kdyz Hibernate loguje chyby. Navic nechci mit v logu chyby, kdyz vlastne k zadne chybe nedoslo. Nemohu ovsem najit, jak se ma v takovem pripade spravne postupovat? Manualni kontrola JPQL/HQL query pred em.remove()? Pokud ano, neni to trochu tezkopadne? Dik za radu Ondra Medek