隐藏在商店中找不到

时间:2017-10-02 17:16:44

标签: phantom-dsl

我遵循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] 

我想我错过了一些明显的东西。有人可以指出如何将隐含的范围纳入范围吗?

此致 Meeraj

这是我存储数据的代码段。

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 个答案:

答案 0 :(得分:0)

这是一个已公开问题的已知错误: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()