I'm trying to delete a bunch of objects with one query using the CriteriaBuilder
API. I'm looking for something like this select:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<T> query = criteriaBuilder.createQuery(entityClass);
Root<T> root = query.from(entityClass);
query.select(root).where(/*some condition*/);
return entityManager.createQuery(query).getResultList();
but then a delete instead of a select. As far as I can see, there's no remove
or delete
method on CriteriaQuery
. Is it possible using this API?
I can of course execute the select, then call entityManager.remove(object)
for each result, but that feels very inefficient.