Данные Spring: DeleteAll и Insert в одной транзакции - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь достичь ниже родной логики запросов, используя спящий режим (Spring JPA). Но save (Iterable) генерирует исключение и откатывает всю транзакцию, если одна из записей не может быть сохранена. Есть ли способ сделать, чтобы поймать ошибку записи и продолжить вставку в другие записи.

Например: -

Native Sql Query

set autocommit=false
delete from EMPLOYEE;
insert into EMPLOYEE(id, name, sal) values(2, ‘Roy’, ‘rt’); —-stmt1
insert into EMPLOYEE(id, name, sal) values(2, ‘Joe’, 3000);
commit;

Примечание: столбец sal числовой в таблице EMPLOYEE. Выполнение продолжается даже после сбоя stmt1.

Hibernate (CrudRepository)

@Autowired
CrudRepository employeeRepository;

@Transactional
public void saveToDB(List dataList) {
   employeeRepository.deleteAll();
   employeeRepository.save(dataList);
}

1 Ответ

0 голосов
/ 16 мая 2018

Использовать сброс между deleteall и save.

...