Transaccions
Esta página todavía no se ha traducido — se muestra en su idioma original:Català
Introducció
Transaccions
Si vols executar més d’una sentència dins una transacció has d’utlitzar la funció transaction():
db.transaction {
val eva = db.ownerQueries.insert("Eva").executeAsOne()
val milú = db.dogQueries.insert("Milú", null, null, eva.id).executeAsOne()
println(milú)
}El resultat és:
Dog(id=7, name=Milú, number=null, breed=null, owner=3)Per tornar el valor des de una transacció, utilitza la funció transactionWithResult:
val dogs = db.transactionWithResult {
db.dogQueries.select(5,0).executeAsList()
}
println(dogs)Rollback
Si durant l’execució del codi es produeix una execpció, automàticamen es farà un “rollback” de la transació.
try {
db.transaction {
db.dogQueries.insert("Kokoro", null, null, null)
throw Exception("Ups!")
}
} catch (e: Exception) {
println("No hi a gossos: ${db.dogQueries.select(5, 0).executeAsList().isEmpty()}")
}Estás leyendo una vista previa.
Inicia sesión con Google para leer la página completa. Sigue el itinerario de aprendizaje — cada página se desbloquea cuando has leído las que la preceden. El alumnado y el profesorado leen las páginas de su curso sin límite.
Iniciar sesión