Spring CrudRepository是否支持列表的deleteBy?

时间:2015-01-21 09:15:51

标签: java spring spring-data spring-data-jpa

Spring Data CrudRepository是否通过非主键的属性删除条目列表?

public interface MyRepository extends CrudRepository<MyEntity, Long> {
    @Modifying
    @Transactional
    public void deleteByName(List<String> names);
}

2 个答案:

答案 0 :(得分:10)

是的,documentation使用以下示例解释了In关键字。示例进一步显示,list参数不必是实体主键的类型:

In - &gt; findByAgeIn(Collection<Age> ages)

  

InNotIn也将Collection的任何子类作为参数以及数组或变量。

然后可以将其应用于您的删除查询:

  

除查询方法外,还可以查询计数和删除查询的查询。

类似的东西:

void deleteByNamesIn(List<String> names);

答案 1 :(得分:3)

可以通过不是主键的属性进行删除。 对于list参数,我认为您正在寻找in运算符,请尝试以下操作:

void deleteByNamesIn(List<String> names);

(我可能会补充的另一个小评论:默认情况下,接口中定义的方法是公共的,因为接口声明中的私有方法没有意义。所以在我看来放弃public是好方式这里)