Я пытаюсь решить проблему с запросом удаления оператора. Теперь реализация выглядит следующим образом.
@Transactional
public void deleteStatements(LocalDate expiryDate) {
int deletedStatements = statementRepository.deleteByIdCreatedDateBefore(expiryDate);
logger.info("Deleted {} statements.", deletedStatements);
}
@Query(value = "WITH deleted AS (DELETE FROM generated_statements WHERE created_date < :expiryDate RETURNING id) " +
"SELECT count(*) FROM deleted;", nativeQuery = true)
int deleteByIdCreatedDateBefore(LocalDate expiryDate);
Теперь я получаю эту ошибку: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
Я пытался добавить аннотацию @Modifying, затем я пытался удалить ее, пробовал с различными комбинациями из @Transactional и @Modifying, все еще есть различные ошибки, связанные с этим удалением, такие как: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
или Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
Теперь я действительно не уверен, в чем здесь проблема.