我正在将一个旧项目从播放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))添加到此类,并能够在我的特征上使用它的正确方法,谢谢高级。