Удалить запись в таблицу и получить количество удаленных строк - PullRequest
1 голос
/ 16 июня 2019

Я хочу создать запрос SQL, который удаляет записи старше 1 часа:

@Override
    public List<Cvvs> deleteOldRecordsByDate(LocalDateTime created_at) throws Exception {

        String hql = "delete from " + Records.class.getName() + " e where e.created_at <= :created_at";
        TypedQuery<Records> query = entityManager.createQuery(hql, Records.class).setParameter("created_at", created_at);
        List<Records> records = query.getResultList();
        return records;
    }

Но как узнать количество удаленных записей?

Ответы [ 2 ]

4 голосов
/ 16 июня 2019

Вы используете executeUpdate для массовых обновлений / удалений, и его возвращаемое значение - это количество затронутых строк:

int records = query.executeUpdate();
2 голосов
/ 16 июня 2019

Поскольку вы используете Spring Data JPA, я думаю, что лучше использовать метод запроса к репозиторию, который будет возвращать количество удаленных записей, например:

public interface RecordRepo extends JpaRepository<Record, Integer> {

    @Modifying
    @Query("delete from Record r where r.createdAt <= ?1") 
    int deleteByCreatedAt(LocalDateTime createdAt);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...