1

更新された質問さらにデバッグした後、この質問を更新して、実際の問題をより正確にしました。

基本的なセキュリティ チェックを実行するために定義した特性がありますが、DB クエリを実行するたびに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.")
    }
}

getByKeyDB エラーがスローされます。私のコントローラーではSqueryl、特性として追加していますが、それを別の特性に適用して、クエリを実行し続けるにはどうすればよいでしょうか? それとも、これに適切にアプローチしていないだけですか?ありがとう。

4

1 に答える 1

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....

すべてがクエリになりました。いくつかのバグを解決する必要があります。さらに注意点が見つかったら、回答を更新します。

于 2012-03-02T02:12:55.293 に答える