玩! @Before、traits 和 Squeryl 抛出关闭连接的问题?
Posted
技术标签:
【中文标题】玩! @Before、traits 和 Squeryl 抛出关闭连接的问题?【英文标题】:Play! issue with @Before, traits, and Squeryl throwing closed connections? 【发布时间】:2012-03-02 00:21:18 【问题描述】:更新问题经过进一步调试后,我更新了这个问题,以更准确地解决实际问题。
我定义了一个特征来进行基本的安全检查,但每次我想运行数据库查询时都会引发 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
添加为特征,但我如何将其应用于另一个特征以便我可以继续运行查询?还是我只是没有正确处理这个问题?谢谢。
【问题讨论】:
【参考方案1】:我更深入地阅读了不同的读物,并将这篇文章归功于这里: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....
现在一切都在查询,只需要解决一些错误。如果我发现更多警告,我会更新答案。
【讨论】:
以上是关于玩! @Before、traits 和 Squeryl 抛出关闭连接的问题?的主要内容,如果未能解决你的问题,请参考以下文章