【问题标题】:Implicit not found on store在商店中找不到隐式
【发布时间】:2018-03-13 19:33:11
【问题描述】:

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

我想我遗漏了一些明显的东西。有人可以指出如何将隐式带入范围吗?

问候 梅拉杰

这是我存储数据的代码 sn-p。

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)

【问题讨论】:

  • 我已经追踪到错误,实体和模型类之间存在一些类型不匹配。

标签: phantom-dsl


【解决方案1】:

这是一个带有未解决问题的已知错误:https://github.com/outworkers/phantom/issues/774

我建议使用上面链接中描述的解决方法,或者我的解决方法是使用.insert() 创建我自己的.store()

示例:

def myStore(person: Person) : Future[ResultSet] =
 insert
   .value(_.name, person.name)
   .value(_.age, person.age)
   .value(_.timeCreate, person.timeCreate)
   .future()

【讨论】:

    猜你喜欢
    • 2020-01-01
    • 1970-01-01
    • 2017-06-23
    • 2016-09-30
    • 2011-07-24
    • 2015-01-31
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多