【问题标题】:Does spring CrudRepository support deleteBy of a list?spring CrudRepository 是否支持列表的 deleteBy?
【发布时间】:2015-03-19 17:56:34
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    是的,这是可能的,documentation 通过以下示例解释了 In 关键字。示例进一步表明,列表参数不必是实体主键的类型:

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

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

    然后这又可以应用于您的删除查询:

    除了查询方法之外,还提供计数和删除查询的查询派生。

    类似:

    void deleteByNamesIn(List<String> names);
    

    【讨论】:

      【解决方案2】:

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

      void deleteByNamesIn(List<String> names);
      

      (我可能会添加另一个小评论:接口中定义的方法默认情况下是公共的,因为接口声明中的私有方法没有什么意义。所以在我看来,在这里删除public 是一种很好的风格)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-02
        • 2015-08-04
        • 2018-07-26
        • 2016-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多