繁体   English   中英

如何使用 deleteAll() 获取删除的行数?

[英]How to get number of rows deleted using deleteAll()?

我想使用 SpringRepository 获取deleteAll()删除的行数。 如果我编写自己的函数,就很容易获得这个,就像在这个线程中一样。 但是,我想覆盖deleteAll()方法。 以下代码不起作用:

public interface CalculationInfoRepository extends MongoRepository<CalculationInfo, Long> {
  @Override
  @Modifying
  int deleteAll(Iterable<? extends CalculationInfo> entities);
}

因为我得到

返回类型与 CrudRepository<CalculationInfo,Long>.deleteAll(Iterable<? extends CalculationInfo>) 不兼容

我该怎么做?

CrudRepository#deleteAll根据定义返回 void,您不能覆盖返回类型。 但是您可以创建自己的方法,例如int deleteAllAndGetCount

https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/CrudRepository.html

您可以使用org.springframework.data.jpa.repository.Query注释来实现这一点:

public interface CalculationInfoRepository extends MongoRepository<CalculationInfo, String> {
    @Modifying
    @Query(value = "{id : {$in: :#{#ids}}}", delete = true)
    int deleteCalculationInfos(@Param("ids") Iterable<String> ids);
}

它将按String类型的 id 删除行并返回已删除行的数量。

暂无
暂无

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

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