加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 来自select的光滑插入

发布时间:2020-12-16 09:59:39 所属栏目:安全 来源:网络整理
导读:我使用 scala 2.11和slick 2.1.0并编译代码: trait TSegmentClient { this: Profile = import profile.simple._ class SegmentClients(tag: Tag) extends Table[(Int,Long)](tag,"seg") { def segmentId = column[Int]("segment_id") def clientId = column
我使用 scala 2.11和slick 2.1.0并编译代码:

trait TSegmentClient { this: Profile =>

        import profile.simple._

        class SegmentClients(tag: Tag) extends Table[(Int,Long)](tag,"seg") {

            def segmentId = column[Int]("segment_id")
            def clientId = column[Long]("client_id")

            def * = (segmentId,clientId)
        }
    }

    segmentClients.insert(clientBehaviors.map(c => (1,c.clientId)))

有用.

但我需要一个像这样的案例类:

case class SegmentClient(segmentId: Int,clientId: Long)

trait TSegmentClient { this: Profile =>

    import profile.simple._

    class SegmentClients(tag: Tag) extends Table[SegmentClient](tag,"seg") {

        def segmentId = column[Int]("segment_id")
        def clientId = column[Long]("client_id")

        def * = (segmentId,clientId) <> (SegmentClient.tupled,SegmentClient.unapply)
    }
}

segmentClients.insert(clientBehaviors.map(c => (1,c.clientId)))

但它没有编译.

(value: models.coper.datamining.SegmentClient)(implicit session:
scala.slick.jdbc.JdbcBackend#SessionDef)Int cannot be applied to
(scala.slick.lifted.Query[(scala.slick.lifted.Column[Int],
scala.slick.lifted.Column[Long]),(Int,Long),Seq])
segmentClients.insert(clientBehaviors.map(c => (segmentId,c.clientId)))

我的代码出了什么问题?

解决方法

您可以使用另一个投影到未映射到案例类的元组.

case class SegmentClient(segmentId: Int,"seg") {

        def segmentId = column[Int]("segment_id")
        def clientId = column[Long]("client_id")
        def tuple = (segmentId,clientId) 
        def * = tuple <> (SegmentClient.tupled,SegmentClient.unapply)
    }
}

segmentClients.map(_.tuple).insert(clientBehaviors.map(c => (1,c.clientId)))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读