繁体   English   中英

将记录删除到表中并获取已删除的行数

[英]Delete record into table and get the number of deleted rows

我想创建一个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;
    }

但是,如何获取已删除记录的数量?

您对批量更新/删除使用executeUpdate ,其返回值是受影响的行数:

int records = query.executeUpdate();

由于您使用的是Spring Data JPA,因此我认为最好使用存储库查询方法,该方法将返回已删除记录的数量,例如:

public interface RecordRepo extends JpaRepository<Record, Integer> {

    @Modifying
    @Query("delete from Record r where r.createdAt <= ?1") 
    int deleteByCreatedAt(LocalDateTime createdAt);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM