У меня небольшая проблема с перехватом исключений.У меня есть такой код:
Role r=new Role("default");
r.setId(Role.DEFAULT_ID);
u.getRoles().add(r); // u is instance of entity which is in relation manytomany with r
try{
em.persist(u);
}catch(Exception e){
System.out.println(e.getClass().getName()+" - default role not found, creating...");
em.persist(r);
em.persist(u);
}
Надеюсь, смысл этого ясен.Если роль по умолчанию еще не существует, предполагается, что должно быть перехвачено исключение, роль создается, а затем ей делается еще один снимок.Однако я не могу поймать ни одно исключение.
Журнал ошибок первых двух выданных исключений:
[org.hibernate.util.JDBCExceptionReporter] (http-127.0.0.1-8080-5) could not insert collection: [Comic.model.User.roles#5] [insert into USER_ACCOUNT_ROLE (USER_ACCOUNT_uid, roles_rid) values (?, ?)]
java.sql.SQLIntegrityConstraintViolationException: ...blabla you dont follow constraints
.
ERROR [org.hibernate.event.def.AbstractFlushingEventListener] (http-127.0.0.1-8080-5) Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not insert collection: [Comic.model.User.roles#5]
Я не могупоймать любое исключение, поскольку оно выбрасывается за пределы моего блока try, верно?Любые предложения, что я мог сделать по этому поводу?