Ответ 1
Неужели удаление не работает или не работает так, как вы ожидали? Как правило, управление объектом должно быть до его удаления, поэтому поставщик JPA (спящий режим в вашем случае) будет загружать (запрос, который вы видите) сначала, а затем выдает удаление.
Если вы видите только запрос, но не имеете соответствующего удаления, то возможны следующие варианты:
- там ничего не удалить, убедитесь, что запись находится в db
- удаление должно быть частью транзакции. Я полагаю, что операторы CRUD данных Spring являются транзакционными по умолчанию, если не просто удостовериться, что все, что вызывает
deleteByEmailAddress
, является транзакционным
Примечание. Вы можете избежать выбора при удалении объекта с использованием модифицирующего запроса delete, пример ниже:
// NOTE: you have return void
@Modifying
@Transactional
@Query(value="delete from Contact c where c.emailAddress = ?1")
void deleteByEmailAddress(String emailAddress)