Löschen mehrerer Objekte auf einmal mit CriteriaBuilder
Ich versuche zu löschen, eine Reihe von Objekten mit einer Abfrage, die mit der CriteriaBuilder
API. Ich bin auf der Suche nach so etwas wie diese wählen:
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();
dann aber löschen, anstatt eine Auswahl. Soweit ich sehen kann, gibt es keine remove
oder delete
Methode auf CriteriaQuery
. Ist es möglich mit dieser API?
Kann ich natürlich ausführen wählen, dann rufen Sie entityManager.remove(object)
für jedes Ergebnis, aber das fühlt sich sehr ineffizient.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Der where-Klausel kann laso wie folgt Aussehen:
createCriteriaDelete
Methode existiert nicht in meiner Bibliothek. In welcher version wurde es Hinzugefügt?in JPA 2.1 gibt es Kriterien APIs genau als das, was Sie wollen.es sieht wie folgt aus:
können Sie refert auf JPA 2.1-Spezifikationen und API hier