播放框架2.6数据库注入

时间:2019-04-16 07:19:00

标签: scala playframework

我正在将一个旧项目从播放2.4迁移到2.6,现在我在处理依赖注入时遇到了一些问题

在这种情况下,在我们使用import play.api.db.DB之前,我们可以使用DB.withTransaction,但是现在不可能了,我尝试将db: Database注入我的班级,但是我对使用db是我的特质。

class Device (
  val id:String,
  val secret:String,
  val name:Option[String]) extends DeviceBehavia {

  override def hashCode(): Int = id.hashCode

  override def equals(obj: scala.Any): Boolean = obj match {
    case obj:Device => obj.id == this.id
    case _ => false
  }
}

object Device extends DeviceBuilder {
}

trait DeviceBehavia {
  self : Device =>

  def insert():Device = {
    db.withTransaction { implicit c =>
      SQL(
        """
         insert into device(id, secret)
         values ({id}, {secret})
        """
      ).on('id -> id, 'secret -> secret).execute()

      platformInfo.insertWithConnection(this)
      this
    }
  }
}

将依赖项注入(如@Inject()(db:Database))添加到此类,并能够在我的特征上使用它的正确方法,谢谢高级。

0 个答案:

没有答案