Hibernate, как и все остальное, поддерживает транзакции.Поэтому вам просто нужно обернуть вызовы update () и save () в транзакции.
Пример:
Session sess = factory.openSession();
Transaction tx = null;
try {
tx = sess.beginTransaction();
// your updates to the database
create(A);
create(B);
tx.commit();
}
catch (RuntimeException e) {
if (tx != null) tx.rollback();
throw e; // or display error message
}
finally {
sess.close();
}
И вы получите свое желание.Если что-то не получается между beginTransaction () и commit (), все откатывается.
У вас могут возникнуть вопросы по обработке сеанса, но это другой вопрос.