2016-08-26 3 views
2

Мой класс java будет вызываться с определенным количеством записей (считайте 1000) каждый раз. Каждый раз, когда он вызывается, он должен вставить все 1000 записей в таблицу. Теперь рассмотрим, что он вызван три раза (означает, что он вставил 3000 записей в db в три транзакции). Теперь, если во время третьей вставки транзакции возникла какая-либо ошибка, ей необходимо отменить все вставки транзакций. Есть ли возможность сделать все три транзакции в одну транзакцию (но код периодически принимает 1000 записей). Прошу вас, чтобы добиться этого.Как откат серии транзакций jdbc в java

+0

Если ему нужно откат всех трех транзакций, то нет трех транзакций. Есть одна транзакция. – Kayaman

+0

«Откат» - это функциональность БД внутри транзакции. После того, как вы совершили транзакцию, нет автоматического способа отката. Вам будет нужно разработать вашу программу, чтобы она могла предложить эту функциональность (и, как правило, это далеко не тривиально). – SJuan76

+0

@ Kayaman Можно ли фиксировать все 3000 записей за раз? Примечание: я буду получать 1000 записей периодически. –

ответ

0

Вам понадобится способ отслеживания всех вставок во время каждой транзакции, а затем функция удалит их, если есть вызванный откат. Нет способа легко отменить транзакцию после ее совершения.

+0

Есть ли возможность сделать все три транзакции одной транзакцией? (но я получаю 1000 записей периодически, а не за раз). так что я могу зафиксировать все вставки за раз. –

+0

Возможно, зависит от того, как настроен ваш код. Похоже, что вы не совершаете транзакции до самого конца программы, которая не кажется хорошей идеей, но если вы хотите обновить свой вопрос, чтобы добавить код ура, тогда я мог бы лучше подумать. – SJR59

Смежные вопросы