Ich fange an zu sehen, "Datenbankstatus mit Sitzung" Ausnahmen in meinen Protokollen nicht synchronisieren konnte und ich habe eine harte Zeit, es zu reproduzieren. Manchmal funktioniert es gut ... Ich sehe zwei Ausnahmen (sie sind zu verschiedenen Zeiten passiert):Unvorhersagbar "Konnte Datenbankstatus mit Sitzung nicht synchronisieren" Ausnahmen in Grails
Fehler JDBCExceptionReporter - Deadlock beim Versuch, Sperre zu erhalten; versuchen Transaktion ERROR PatchedDefaultFlushEventListener Neustart - konnte nicht Datenbank-Status mit Sitzungs org.hibernate.exception.LockAcquisitionException synchronisieren: konnte nicht aktualisiert werden: [com.myapp.School # 1911]
Und
FEHLER PatchedDefaultFlushEventListener - Konnte nicht synchronisieren Datenbankstatus mit Sitzung org.hibernate.StaleObjectStateException: Zeile wurde von einer anderen Transaktion aktualisiert oder gelöscht (oder nicht gespeicherte Wert m apping war falsch): [com.myapp.School # 1905]
Hier ist die Methode, wo sie geworfen werden:
def populateFriends(ArrayList<FriendView> friends, User user) {
friends.eachWithIndex { friendView, index ->
def friend = Friend.findByFriendId(friendView.id) ?: new Friend()
def schoolName = friendView.schoolName
def school = null
if (schoolName) {
school = School.findByName(schoolName) ?: new School(name: schoolName).save(flush:true)
}
if (school) {
// add to user's school list
user = User.get(user.id)
user.addToSchools(school)
user = user.merge(flush: true)
user.save(flush: true)
friend.school = school
}
friend.save(flush: true)
}
}
Ich habe den ganzen Tag in diesem und ich würde wirklich zu schätzen irgendeine Hilfe.
Können Sie Ihre ganze Schule Domain hier posten - 2), warum Sie tun user = user.merge (flush: true) –
Haben Sie versucht, user.refresh()? Wenn ich etwas seltsames Verhalten erfahre, beziehe ich mich normalerweise auf diesen Beitrag: http://stackoverflow.com/questions/536601/what-are-your-favorite-grails-debugging-tricks oder um genauer zu sein, die Antwort mit einem Versuch zu speichern . – marko
Aber er sollte wirklich versuchen herauszufinden, warum das passiert und was die Ursache des Problems ist, ich würde keine Abhilfe schaffen, bis ich weiß, warum das überhaupt passiert. –