2013-05-01 10 views
7

Ich verwende Spring-Data-Mongodb 1.2.0 mit QueryDSL 2.9.0.QueryDSL delete Methode

Warum hat die QueryDslPredicateExecutor keine delete(Predicate predicate) Methode?

Gibt es eine Problemumgehung?

+0

Schauen Sie sich diese Antwort zu bestätigen. http://StackOverflow.com/a/23731038/1125467 – vivekp

Antwort

2

Was Sie wahrscheinlich tun können, ist dies. Mit dem Prädikat für „where“ Zustand, Abfrage für die Objekte und übergeben, die dann auf die Löschmethode

QMyObj obj= new QMyObj("myObj"); 
Iterable<MyObj> myObjs = myObjRepository.findAll(obj.property.eq("property")); 
myObjRepository.delete(myObjs); 

Hier bin ich zum ersten Mal eine Instanz der Q-Klasse erstellen und dann alle Objekte auf dem Prädikat zu finden. Rufen Sie dann die Methode void delete(Iterable<? extends T> entities) des Repositorys auf.

Vielleicht ist es wegen dieser Problemumgehung ist, dass sie es nicht schaffen, aber das ist für den Frühling Quelle Jungs

+2

Es ist einfach, aber hat Leistungsproblem – Pooya

+0

Es gibt eine bessere Lösung - Überprüfen Sie diese Antwort http://StackOverflow.com/A/23731038/1125467 – vivekp