更新问题经过一些进一步的调试后,我已经更新了这个问题,以便更准确地解决实际问题。
我有一个我已经定义的特性来进行基本的安全检查,但每次我想运行数据库查询时都会引发Cannot operate on a closed connection!!!
错误。
以下代码:
trait SecureAPI {
self:Controller =>
@Before
def checkKey(key:String)
models.Account.getByKey(key) match {
case account:Account => {
renderArgs += "account" -> accountId
Continue
}
case _ => Forbidden("Key is not authorized.")
}
}
getByKey
会引发数据库错误。在我的控制器中,我正在添加Squeryl
作为特征,但是如何将其应用于另一个特征,以便我可以继续运行查询?或者我只是没有正确接近这个?感谢。
答案 0 :(得分:2)
我深入研究了不同的阅读材料,这篇文章归功于这篇文章:http://www.alvarocarrasco.com/2010/12/i-have-settled-on-new-platform-for.html
我不得不使用Squeryl将会话绑定到当前线程。因此,为了使上述代码有效,我必须添加SessionFactory
@Before
def checkKey(key:String)
SessionFactory.newSession.bindToCurrentThread // added this here
models.Account....
现在一切都在查询,只需要解决一些问题。如果我发现更多警告,我会更新答案。