weno
weno

Reputation: 856

Spring data: bulk delete list of entities

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

Answers (3)

Zorglube
Zorglube

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

vahid asghari
vahid asghari

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

Shadov
Shadov

Reputation: 5591

But CrudRepository has exactly that method: deleteAll

And JpaRepository has: deleteInBatch

Upvotes: 3

Related Questions