Transaccions
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 llegint una vista prèvia.
Inicia sessió amb Google per llegir la pàgina completa.
Inicia sessió amb GoogleAmb qualsevol compte de Google. Només et demanarem que acceptis les condicions del servei.