2013-08-06 3 views
0

Я пишу сценарий для загрузки записей из файла в базу данных mysql с использованием спящего режима. Я обрабатываю записи в партиях 1000 с использованием транзакций, вставка будет терпеть неудачу, если запись уже существует в БД, что по существу приведет к откату всей транзакции. Есть ли способ узнать, какие записи обрабатываются в откатной транзакции?Как получить hibernate failed transaction details

Также, учитывая этот сценарий, есть ли способ сделать это лучше? Обратите внимание, что сценарий запускается ежедневно, а его не загружается один раз, и файл обычно будет содержать около 250 миллионов записей в день.

ответ

0

Вы можете использовать API StatelessSession и проверить наличие ConstraintViolationException; вы можете отменить запись об ошибках без транзакции отката.

+0

Я не хочу отбрасывать запись о сбое, я хочу, чтобы данные были сохранены в файле, поэтому мне нужен способ узнать, какие записи не удались в trasaction. – Aryan

+0

Проверьте 'ConstraintViolationException' и в журнале catch-block неудачная запись. –

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