У меня есть метод внутри блока Try/Catch, который вызывает операцию сохранения Hibernate DB Save для вставки строки.Спящий режим не ускоряется, чтобы выхватить исключения базы данных
Метод завершается успешно, даже если есть проблемы с БД (например, когда я вставляю NULL в столбцы, отличные от NULL). Затем, в какой-то более поздний момент, Hibernates пытается «сбросить» или завершить транзакцию, и именно тогда возникают ошибки.
Это испортит поток моего кода, потому что я уверен, что мой метод успешно завершен, чтобы делать другие вещи, например. отправлять электронные письма. После вызова моего метода я продолжаю рассылать электронные письма на основе предположения о том, что ошибок не было (иначе меня бы выбросили из потока кода и в мой блок Catch, но это не).
Есть ли у кого-нибудь идеи, как справиться с этой ситуацией?
Какое управление транзакциями/стратегией вы используете? Если вы ожидаете, что что-то будет сделано в БД, вы должны использовать явные транзакции. Никогда не стоит полагаться на неявные транзакции ... http://hibernateprofiler.com/learn/alerts/DoNotUseImplicitTransactions –
Я не уверен, но есть ли способ автоматически скрыть сразу на уровне Hibernate? (Я не говорю о слое БД, это все еще транзакция.) –
Почему вы не получаете исключение? Как исключение Hibernate или JDBC? –