Неявный не найден в магазине
Я следовал шаблону из примеров на GitHub. Когда я вызываю store для объекта модели, передавая экземпляр объекта, я получаю ошибку компиляции, указывающую на отсутствие одного из неявных параметров, как показано ниже.
could not find implicit value for parameter sg: com.outworkers.phantom.macros.SingleGeneric.Aux[com.ss.wuhu.settlement.entity.Settlement,Repr,HL,Out]
Я предполагаю, что упускаю что-то очевидное. Может ли кто-нибудь указать, как привести неявное в сферу?
С уважением, Мирадж
Это фрагмент кода, в котором я храню данные.
import akka.Done
import com.outworkers.phantom.dsl._
import com.outworkers.phantom.connectors.{CassandraConnection, ContactPoints}
import com.ss.wuhu.settlement.entity.Settlement
import com.ss.wuhu.settlement.entity.mapping.{SettlementForCourierModel, SettlementForVendorModel}
object Connector {
private val hosts = Seq("127.0.0.1") // TODO from environment
lazy val connector: CassandraConnection = ContactPoints(hosts).keySpace("wuhu_order")
}
class SettlementDatabase(override val connector: CassandraConnection) extends Database[SettlementDatabase](connector) {
object SettlementForCourierModel extends SettlementForCourierModel with connector.Connector
object SettlementForVendorModel extends SettlementForVendorModel with connector.Connector
def truncateAll() = {
Database.truncate()
}
def store(set: Settlement) = {
for {
v <- Database.SettlementForVendorModel.store(set)
d <- Database.SettlementForCourierModel.store(set)
} yield (Done)
}
}
object Database extends SettlementDatabase(Connector.connector)
1 ответ
Это известная ошибка с открытой проблемой: https://github.com/outworkers/phantom/issues/774
Я предлагаю либо использовать обходной путь, как описано в ссылке выше, либо мой обходной путь, который создавал мой собственный .store()
с помощью .insert()
,
пример:
def myStore(person: Person) : Future[ResultSet] =
insert
.value(_.name, person.name)
.value(_.age, person.age)
.value(_.timeCreate, person.timeCreate)
.future()