Bedingung zum Löschen eines nur Ihnen bekannten Objekts.
Wenn für Sie das Feld id
ausreicht, können Sie fortfahren, wenn Sie Ihre Bedingungen erweitern möchten (über andere Felder als Betrag und client_id können Sie es tun).
ein Objekt zu löschen, Sie zwei Möglichkeiten folgen kann (I Ihr TransactionRequest
Objekt als Beispiel verwenden):
Die erste:
das Objekt durch Abfrage holen und löschen es:
Query q = session.createQuery("select from TransactionRequest t where t.id = :yourParam");
q.setString("yourParam, "25");
TransactionRequest toDelete = (TransactionRequest)q.uniqueResult();
session.delete(toDelete);
Die zweite:
schreiben eine Löschabfrage
Query q = session.createQuery("delete from TransactionRequest where id = :yourParam");
q.setString("yourParam, "25");
q.executeUpdate();
Unterschied zwischen zwei Arten:
Wenn Sie die erste Art und Weise verwenden, werden Sie garantiert Ihr Objekt und Datenmengen mit Kaskade-Klausel Wenn Sie
abgebildet löschen Verwenden Sie die zweite Möglichkeit, können Sie nicht Ihr Objekt löschen, wenn Sie in Ihrem Objekt ein Set/Liste/Tasche zugeordnet
noch ein Hinweis: alle Bulk-Operationen (löschen von ...) umgehen Interceptor und Event Listeners und erste Ebene Zwischenspeicher. – idmitriev
@ igor-dmitriev: Ja, du hast Recht –