// always utilize DB transactions when possible.
databaseForTable<User>().executeTransaction { db ->
val user = User(id = UUID.randomUUID(),
user.name = "Not Andrew Grosner";
// find adult users synchronously
val users = (select from User::class
where (User_Table.age greaterThan 18))
.queryList(database<AppDatabase>())
// or asynchronous retrieval (preferred)
(select from User::class where User_Table.age.greaterThan(18))
.async(database<AppDatabase>()) { queryList(it) }
success = { transaction, result ->
error = { transaction, error ->
// use coroutines! or RX3 or LiveData
val result = (delete<SimpleModel>() where SimpleModel_Table.name.eq("5"))
.awaitTransact(db) { executeUpdateDelete(database) }