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. Segueix l'itinerari d'aprenentatge — cada pàgina es desbloqueja quan has llegit les que la precedeixen. L'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.
Inicia sessió