2009-08-09 8 views
3

Nach einer geänderten Benutzernamen speichern (mit flush:true) wertet die folgenden Ausdruck false:GORM refresh() -Methode nicht immer aktuellen Daten aus der Datenbank

User.get(u.getId()).name == u.refresh().name 

Die linke Seite nimmt den geänderten Benutzernamen, während nach oben Die rechte Seite gibt den "alten" Wert zurück.

Ideen? Aktualisieren der "u" -Referenz in der nächsten HTTP-Anfrage scheint zu funktionieren.

Antwort

7

Wird dies innerhalb einer Transaktion ausgeführt? Wenn Ihr Code innerhalb einer Transaktion ausgeführt wird, werden Änderungen an der Datenbank nicht sofort übernommen, selbst wenn flush: true verwendet wird. Änderungen an Domänenobjekten, die innerhalb einer Transaktion vorgenommen werden, werden nur bei Beendigung der Transaktion gelöscht.

Verwandte Themen