Я пытаюсь написать приложение Java, которое импортирует файл данных. Процесс выглядит следующим образом
- Создать транзакцию
- Удалить все строки из таблицы данных
- Загрузить файл данных в datatable
- Подтвердить ИЛИ откат, если возникли какие-либо ошибки.
Данные, загруженные на шаге 3, в основном совпадают с данными, удаленными на шаге 3.
Удаление выполняется с использованием следующего
DetachedCriteria criteria = DetachedCriteria.forClass(myObject.class);
List<myObject> myObjects = hibernateTemplate.findByCriteria(criteria);
hibernateTemplate.deleteAll(myObjects);
Когда я загружаю файл данных, я получаю следующее исключение
nested exception is org.hibernate.NonUniqueObjectException:
a different object with the same identifier value was already associated with the session:
Весь процесс должен проходить в транзакции.
И я действительно не хочу сравнивать файл импорта / таблицу данных, а затем выполнить вставку / обновление / удаление, чтобы синхронизировать их.
Буду признателен за любую помощь.