Я хочу сделать несколько удалений из разных таблиц, например так:
DELETE FROM TABLE1 WHERE T1_ID = :id AND T1_CREATION_DATE IS NULL;
DELETE FROM TABLE2 WHERE T2_ID = :id AND T2_CREATION_DATE IS NULL;
COMMIT;
но с подпружиненной партией.
пока я пробовал:
String query = "DELETE FROM TABLE1 WHERE T1_ID = :id AND T1_CREATION_DATE IS NULL;"+
"DELETE FROM TABLE2 WHERE T2_ID = :id AND T2_CREATION_DATE IS NULL;"+
"COMMIT;";
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
jobContext = stepExecution.getJobExecution().getExecutionContext();
Employee employee = (Employee) jobContext.get("employee");
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("id", employee.getId());
new NamedParameterJdbcTemplate(dataSource).update(query,parameters);
return RepeatStatus.FINISHED;
}
он компилируется, но я получил неправильное исключение грамматики SQL, думаю, это потому, что JdbcTemplates не управляет транзакционным запросом.
Любой намек?
PS: для моих читателей и писателей я использую Mybatis, есть ли способ, которым он может обрабатывать множественное удаление? Я пытался, но мне не удалось использовать SQL-запрос mybatis в тасклете