Я пытаюсь вставить каждые 100 записей из файла с помощью вставки в гибернате. Если я завершу логику внутри транзакции, она будет работать, как ожидалось, например, скажем, я создаю 3 партии из 300 записей и обертывания логики внутри транзакции, тогда транзакция будет откат 1-й и 2-й партии, если у 3-й партии возникла проблема.многократная вставка в транзакции
0
A
ответ
2
Всегда заверните свою партию в транзакцию. Если вы вносите 100 вложений в транзакцию, то все 100 будут совершены, если все будет в порядке. Я также предлагаю вам использовать сеансы без гражданства, чтобы ускорить вставку в пакет. Я настоятельно рекомендую вам прочитать руководство по документации Hibernate Batch processing.
0
Вкратце: он будет работать должным образом.
В Hibernate нет ограничений на то, что каждая вставка пакета должна находиться в отдельной транзакции. Если вы выполняете несколько пакетных вставок в одной транзакции, они будут выполняться/откатываться в целом.
(конечно, это другая история, если у вас есть вложенные транзакции или используя веху в транзакции.)
Смежные вопросы
- 1. MS SQL Server, многократная вставка
- 2. Повторяющаяся вставка в транзакции
- 3. Многократная вставка MySQL, когда дубликаты не разрешены.
- 4. Вставка транзакции-отката SQL
- 5. Вложенные транзакции Вставка неудач
- 6. Вставка записей с использованием транзакции
- 7. Содержит ли вставка, сделанная в транзакции, SELECT до совершения транзакции
- 8. Вставка записей родителя/ребенка в транзакции A
- 9. Почему вставка 1M записей медленнее без транзакции, чем внутри транзакции?
- 10. node-mssql Вставка транзакции - Возврат вставленного id ..?
- 11. Многократная компоновка в RecylerView
- 12. Многократная флеш в той же транзакции EJB, в результате которой произошли изменения первого сброса
- 13. Влияние транзакции SQL в транзакции WCF
- 14. Многократная загрузочная загрузка в Laravel?
- 15. Многократная проблема перетаскивания в jQuery
- 16. Многократная замена SymPy в Julia
- 17. множественная вставка в транзакции sql, избегающая дублирования ключей
- 18. Sqlite Transaction, синтаксическая ошибка. Вставка и удаление в одной транзакции
- 19. Вставка нескольких таблиц или привязка первичного ключа в одной транзакции
- 20. Вставка в две таблицы с использованием транзакции Codeigniter
- 21. Mysql транзакции в транзакции
- 22. MYSQL, многократная обновления таблицы
- 23. Обзор: многократная реализация safe_bool
- 24. Многократная аутентификация JBoss
- 25. Весенняя среда - многократная?
- 26. многократная загрузка файла django
- 27. HTML многократная коробка выбора
- 28. Многократная панель навигации
- 29. Java Hashmap - многократная нить
- 30. Многократная колонка SSRS
может я обернуть все партии в одной транзакции. – cooper
Я только что прошел через ссылку, которую вы создали, и мое hibernate pojo имеет сложный граф объектов и содержит коллекции внутри, поэтому я обнаружил, что не могу использовать сеансы без состояния в таком случае. Правильно, если я ошибаюсь. – cooper
@cooper Неправильно. Вам нужны сеансы с сохранением состояния, когда вы хотите, чтобы спящий режим был грязным, проверьте свои pojos, которые не нужны (из того, что я прочитал) в вашем случае. Управление загрязнением имеет дополнительные накладные расходы с точки зрения памяти и производительности. –