Reputation: 856
How can I bulk delete with Spring JPA having list of entities?
The following would work:
void deleteByIdIn(List<Integer> ids)
However I do have a list of entities, not ids. I could convert the list to the list of ids, but I would prefer not to.
I am looking for something like: void deleteAll(List<Entitity> entities)
Upvotes: 0
Views: 6417
Reputation: 734
Depending of the repo (Repository
and all inheritors) you use you can call
void deleteById(Long id);
void delete(Identity entity);
void deleteAll(Iterable<? extends Identity> entities);
void deleteInBatch(Iterable<T> entities);
void deleteAllInBatch();
Or create something like
@Query("Delete From Identity i Where i.id In :ids")
void deleteCustom(@Param("ids") Iterable<? extends Long> ids);
Upvotes: 1
Reputation: 57
u need override this Methode: void deleteAll(List entities)
void delete(Entitity entities){
repo.delete(entities);
}
void deleteAll(List<Entitity> entities){
foreach(Entitity entitie:entities){
delete(entitie);
}
}
Upvotes: -2
Reputation: 5591
But CrudRepository
has exactly that method: deleteAll
And JpaRepository
has: deleteInBatch
Upvotes: 3