Метание пружины CannotCreateTransactionException - PullRequest
0 голосов
/ 30 мая 2018

Сценарий состоит в том, что я хочу обработать исключение в случае сбоя БД.

Я предполагал, что будет сгенерировано исключение DataAccessException.Однако вместо этого, когда я сбрасываю базу данных, исключение, которое я получаю из метода хранилища, - CannotCreateTransactionException.Правильно ли это.

Мое приложение является приложением Spring CommandLine, и ниже приведен код того, как я к нему обращаюсь

CustomerRepository cr = appContext.getBean(CustomerRepository.class);
    cr.exists(customerId);

Это работает, как ожидалось, но когда БД не работает, почему она выбрасываетCannotCreateTransactionException.Или мое понимание DataAccessException неверно.

Когда наступает DataAccessException и когда возникает CannotCreateTransactionException?

1 Ответ

0 голосов
/ 30 мая 2018

Если вы проверите исходный код, вы увидите, что DataAccessException и его подклассы используются для обработки всех видов ошибок при доступе к данным в таблице, но не к БД.Как запись заблокирована другой транзакцией, будет DataAccessException.

. Если вы остановите свою БД во время доступа к базе данных, ошибка может быть связана с драйвером базы данных и библиотекой источника данных, основанной на этом.Например, есть ли у вас пул соединений.

Итак, я думаю, что вы не можете указать, какое исключение будет выброшено при отключении БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...