Java 是否使用标准API删除?
假设我有一个标准Java 是否使用标准API删除?,java,spring,jpa,spring-data-jpa,criteria-api,Java,Spring,Jpa,Spring Data Jpa,Criteria Api,假设我有一个标准 @Repository public interface FooRepository extends JpaRepository<Foo, Integer>, JpaSpecificationExecutor<Foo> { static Specification<Foo> byBars(Collection<String> bars) { return (Root<Foo> root, Cr
@Repository
public interface FooRepository extends JpaRepository<Foo, Integer>, JpaSpecificationExecutor<Foo> {
static Specification<Foo> byBars(Collection<String> bars) {
return (Root<Foo> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) -> {
if (bars.isEmpty()) {
return criteriaBuilder.disjunction();
}
return root.get("bar").in(bars);
};
}
}
不起作用,也不起作用
void deleteAll(Specification<Foo> specification);
void deleteAll(规范);
或
void删除(规范);
因为
找不到类型Foo的属性deleteBy
Spring规范支持find、findAll和count查询。 SpringDataJPA中不支持删除和更新方法 引用自JpaSpecificationExecutor:
Optional<T> findOne(@Nullable Specification<T> spec);
List<T> findAll(@Nullable Specification<T> spec);
Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable);
List<T> findAll(@Nullable Specification<T> spec, Sort sort);
long count(@Nullable Specification<T> spec);
可选findOne(@Nullable Specification);
列表findAll(@Nullable Specification);
页面findAll(@Nullable Specification,Pageable-Pageable);
列出findAll(@Nullable Specification,Sort-Sort);
长计数(@Nullable Specification);
void delete(Specification<Foo> specification);
Optional<T> findOne(@Nullable Specification<T> spec);
List<T> findAll(@Nullable Specification<T> spec);
Page<T> findAll(@Nullable Specification<T> spec, Pageable pageable);
List<T> findAll(@Nullable Specification<T> spec, Sort sort);
long count(@Nullable Specification<T> spec);