在playframework

时间:2017-05-06 11:06:55

标签: scala shapeless

trait EntityAutoInc[PK, E <: EntityAutoInc[PK, E]] extends Entity[PK] { self: E =>
  import shapeless._
  import tag.@@
  import tag.$at$at

  def copyWithNewId(id : PK)(implicit mkLens: MkFieldLens.Aux[E, Symbol @@ Witness.`"id"`.T, PK]) : E = 
  {
    (lens[E] >> 'id).set(self)(id)
  }

这是从&#34; PlayAuthenticate中抽出的代码 - 使用示例应用程序Play!框架2(Scala)&#34;。

  

我收到错误&#34;需要稳定的标识符,但找不到shapeless.Witness.selectDynamic(&#34; \&#34; id \&#34;&#34;)。&#34;

     

     

&#34;找不到参数mkLens的隐含值:shapeless.MkFieldLens [E,带有shapeless.tag.Tagged的符号[String(&#34; id&#34;)]]   和

     

没有足够的方法参数&gt;&gt; :(隐式mkLens:shapeless.MkFieldLens [E,符号与shapeless.tag.Tagged [String(&#34; id&#34;)]])shapeless.Lens [E ,mkLens.Elem]。未指定的值参数mkLens。&#34;

我是scala和playframework的新手,所以仍然在学习过程中。有人可以帮我纠正这个错误。

0 个答案:

没有答案