Update Wert mit join
Einsatz von Hibernate, würde ich mag, um ein update der Daten in der Datenbank, basierend auf Bedingungen, aber ich bekam die folgende Fehlermeldung : "Knoten, um die traverse darf nicht null sein"
Hier ist meine Datenbank Beschreibung :
Account: id, email, password
Member : id, account, team
Team: id, current (and a reference to member => members)
Hier ist mein JPA :
UPDATE Team t SET t.current = :current LEFT JOIN t.members m WHERE t.current = :current_true AND m.account = :account
Was mache ich falsch?
Wenn ich den LEFT JOIN auf, bevor Sie den SATZ :
UPDATE Team t LEFT JOIN t.members m SET t.current = :current WHERE t.current = :current_true AND m.account = :account
Bekam ich : "erwarten-SET, LINKS"
Wenn ich entfernen Sie die Verknüpfung :
UPDATE Team t SET t.current = :current WHERE t.current = :current_true AND t.members.account = :account
Bekam ich : "Illegal attempt to dereference-Sammlung".
Was ist der richtige Weg, die Werte zu aktualisieren ?
Vielen Dank für Ihre Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
JPA-2.0-Spezifikation im Kapitel 4 enthält details zu allen unterstützten Funktionen in JPQL. Dies ist die definition der "update" - Anweisung:
Die syntax dieser Operationen ist wie folgt:
Wie Sie sehen können, Unterstützung für mehrere Entitäten ist nicht anders hier. Ich denke, Sie müssen einen anderen Weg finden, es zu tun, vielleicht eine Methode, die wählt die Personen, die Sie aktualisieren möchten zuerst, und dann die Ergebnisse Durchlaufen Einstellung der Werte. Oder Sie können eine native SQL-update.
Verwenden einer Unterabfrage:
(nicht getestet)