play-slick で簡単なテストを行っていました。で初めて使用DB.withSession {implicit s:Session => ...}
しましたがGlobal.scala
、非常にうまく機能します。次にDBAction{}
、コントローラーで使用しようとしましたが、物事がバラバラになり始めました。
package controllers
import play.api.mvc._
import play.api.db.slick._
import play.api.Play.current
import models._
object Main extends Controller {
def index = DBAction { implicit s =>
Articles.insert(Article(None,"title1", "hellothere", Some(timeStamp), Some(timeStamp), None))
Ok(views.html.index.render("OK, It works"))
}
}
モデルは次のようになります (DAO
トレイト、ケース クラス、ケーキ パターンは省略しています)。
object Articles extends DAO {
/* Insert a new Article */
def insert(article: Article)(implicit s: Session) {
Articles.insert(article)
}
}
このプログラムを実行しようとしましたが、得られたのは永遠にサーバー保留中のステータスだけでした。他のすべてがGlobal.scala
正常に機能し、すべてのテーブルが正しく作成されました。そのArticles.insert()
句を削除すると、ビュー ページが表示されます。したがって、この部分に何か問題があるに違いないと思います: DBAction { implicit s=> ...}
. どういうわけか、DBAction が暗黙のセッションを見つけられなかったような気がします。それは探し続けます...これにより、この永遠に保留中の応答が発生します。
うーん、調べてもどうしたらいいのかわからない。ここで何が問題なのか、どうすれば修正できるのか誰か知っていますか?