[英]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.