postgresql Ktor Exposed java.lang.IllegalStateException:上下文中没有事务

z18hc3ub  于 2023-06-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(130)

我正在使用postgress,exposed和hikari cp构建ktor服务器。我在看这个https://ktor.io/docs/interactive-website-add-persistence.html。但我遇到了错误,需要在这个线程解释。
我有datasource让所有用户喜欢:

override suspend fun getAllUsers(): Query = dbQuery {
    UserDao.selectAll()
}

使用此代码,它将返回如下错误:
java.lang.IllegalStateException: No transaction in context.
但是当我将返回值改为List时,它工作得很好。有人能解释一下Query返回值有什么问题吗?谢谢

override suspend fun getAllUsers(): List<User> = dbQuery {
    UserDao.selectAll().map { 
        it.asUser()
    }
}
kognpnkq

kognpnkq1#

我们不能在没有事务的情况下处理查询。第二个例子关闭查询并返回用户列表。
获得连接后,所有SQL语句都应放在事务中:此处描述

相关问题