Как удалить записи из таблицы с похожими условиями, используя обновление шаблона Spring JDB C? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь удалить некоторые строки из таблицы, используя шаблон JDB C и Oracle. Я не мог понять, как удалить с подобным условием. Как мы передаем параметры внутри одинакового условия?

Я попробовал следующее:

this.jdbcTemplate.update("delete from logs l where l.message like '%" + ":studentId" + "%'" ,new MapSqlParameterSource("studentId", studentIds[i]));

Этот код написан внутри для l oop, который должен применять оператор delete для каждого studentId внутри массива studentIds. Он не выдает ошибку, но также не работает.

В журнале отладки написано: Выполнение подготовленного SQL оператора [удалить из журналов l, где l.message похоже на '%: studentId % ']

Где для успешно выполненного оператора журнал отладки говорит: Выполнение подготовленного SQL оператора [обновить студентов m set m.student_deleted =' Y 'где m.student_id =? ]

Здесь ставится "?" вместо моего параметра. Я думаю, что это должно быть что-то вроде этого для утверждения с подобным условием также. Но вместо этого он помещает%: studentId%

Как правильно это сделать, заранее спасибо.

1 Ответ

0 голосов
/ 21 января 2020

Я нашел решение здесь .

Это должно было быть так:

this.jdbcTemplate.update("delete from logs l where l.message like :studentId" ,new MapSqlParameterSource("studentId", "%"+studentIds[i]+"%" ));
...