2015-04-08 2 views
0

В пакетном задании Spring мне нужно запрограммировать DELETE перед INSERT, чтобы избежать нарушений первичного ключа на уже существующих ключах.Весенняя партия УДАЛИТЬ ПЕРЕД НАБЛЮДЕНИЕМ лучшей практики?

Какова наилучшая практика в отношении этой потребности? Как и где я должен выполнить это предварительное удаление?

Thx заранее для ваших предложений. :-)

+0

Что можно использовать для обновления? –

ответ

1

Я считаю, что вы должны вставить данные в некоторый temp table перед удалением из фактической таблицы, потому что если вы удалите запись и вставьте сбой?

Данные будут утеряны или использовать spring transactions, чтобы избежать этого сбоя, в случае если что-то не ожидается, оно откатывается от всей транзакции.

Это что-то вроде того, как мы это делали для safe file writing.

+0

Thx Pankaj для ваших предложений. Что вы подразумеваете под «безопасным написанием файлов», пожалуйста? – SylvainR

+0

В основном это концепция, в которой мы должны перезаписать существующий файл на жестком диске, что, если мы пишем файл и сталкиваемся с «отсутствием дискового пространства», операция не будет успешной и может быть существующими данными в этом файле поврежден. Вот почему концепции tmp/rename являются более лучшими параметрами во время написания файла. Если ответ имеет смысл, любезно «примите» мой ответ. –

0

Используйте тасклет для удаления данных. Чтобы эта задача работала, вам может потребоваться ввести jdbcTemplate или аналогичный для выполнения операций Db из tasklet. Я также перепробовал эту тему в Интернете, и это лучшее решение, что я получил до сих пор.

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