Ich habe eine Liste, die einige Namensdaten enthält:Wie lösche ich Zeilen mit updateBatch, wenn ich eine Liste und einen einzigen Wert für Parameter hatte?
List<String> names; //not null, already with values
Und ich habe eine einzelne ganze Zahl, die die ID des erzeugten Namen enthält:
Integer creatorId = 47;
Und schließlich habe ich die löschen sQL, die wie ist:
String deleteSql = "DELETE FROM persons WHERE person_name = ? and creator_id = ?";
Der Punkt hier ist die updateBatch
Methode von Spring zu verwenden, und NICHT vERWENDENin
Klausel im Löschen sql für person_name-s und vermeidenfor
Schleifen.
Gibt es eine Möglichkeit, einige Batch-Methoden hier zu verwenden? Vielen Dank!
Gibt es Gründe, warum Sie keine Schleife oder In-Klausel verwenden können? – Thomas
das ist ein Zweck in meinem Job, es mit Batch zu tun, und nicht in Klausel. aber wenn es nicht möglich ist, dann kann ich es anders machen. also ist es möglich, es mit Batch oder gar nicht zu tun? – victorio
Ich bin nicht so vertraut mit Spring, aber Sie müssten entweder eine einzelne Abfrage mit einem In-Klausel erstellen oder einen Stapel von Abfragen erstellen, indem Sie eine Schleife verwenden. Ich bezweifle, dass Sie vernünftig tun können, ohne eines von denen (Sie könnten etwas mit Rekursion abziehen, aber warum?). Ich würde auch bezweifeln, dass es ohne einen guten Grund zu vermeiden ist, dass es aus geschäftlicher Sicht keinen Sinn ergibt. – Thomas