Estoy empezando a ver excepciones "No se pudo sincronizar el estado de la base de datos con la sesión" en mis registros y estoy teniendo dificultades para reproducirlo. A veces funciona bien ... Veo dos excepciones (están sucediendo en diferentes momentos):impredecibles excepciones "No se pudo sincronizar el estado de la base de datos con la sesión" en grails
ERROR JDBCExceptionReporter - Se ha encontrado un punto muerto al intentar obtener el bloqueo; intente reiniciar PatchedDefaultFlushEventListener error de transacción - No se pudo sincronizar el estado de base de datos con la sesión org.hibernate.exception.LockAcquisitionException: No se pudo actualizar: [com.myapp.School # 1911]
Y
ERROR PatchedDefaultFlushEventListener: no se pudo sincronizar el estado de la base de datos con la sesión org.hibernate.StaleObjectStateException: La fila se ha actualizado o eliminado por otra transacción (o no guardado m apping era incorrecta): [com.myapp.School # 1905]
Aquí es el método en el que se tiran:
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)
}
}
que he estado en esto durante todo el día y yo realmente lo apreciaría alguna ayuda.
Se puede publicar su dominio de toda la escuela aquí - 2) ¿por qué haces user = user.merge (ras: true) –
¿Ha intentado user.refresh()? Cuando experimento algún comportamiento extraño, por lo general me remito a esta publicación: http://stackoverflow.com/questions/536601/what-are-your-favorite-grails-debugging-tricks o, para ser más precisos, la respuesta con una prueba de guardar . – marko
Pero él realmente debería tratar de entender por qué sucede esto y cuál es la fuente del problema, no haría una solución hasta que sepa por qué sucede esto en primer lugar. –