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

Scala意为代字号

发布时间:2020-12-16 10:04:40 所属栏目:安全 来源:网络整理
导读:嗨,我是新的 Scala,并有以下示例的问题: import scala.slick.driver.MySQLDriver.simple._ case class Customer(id: Option[Long],firstName: String,lastName: String,birthday: Option[java.util.Date])/** * Mapped customers table object. */object Cu
嗨,我是新的 Scala,并有以下示例的问题:

import scala.slick.driver.MySQLDriver.simple._

    case class Customer(id: Option[Long],firstName: String,lastName: String,birthday: Option[java.util.Date])

/**
 * Mapped customers table object.
 */
object Customers extends Table[Customer]("customers") {

  def id = column[Long]("id",O.PrimaryKey,O.AutoInc)

  def firstName = column[String]("first_name")

  def lastName = column[String]("last_name")

  def birthday = column[java.util.Date]("birthday",O.Nullable)

  def * = id.? ~ firstName ~ lastName ~ birthday.? <>(Customer,Customer.unapply _)

  implicit val dateTypeMapper = MappedTypeMapper.base[java.util.Date,java.sql.Date](
  {
    ud => new java.sql.Date(ud.getTime)
  },{
    sd => new java.util.Date(sd.getTime)
  })

  val findById = for {
    id <- Parameters[Long]
    c <- this if c.id is id
  } yield c
}

line的含义是什么:

def * = id.? ~ firstName ~ lastName ~ birthday.? <>(Customer,Customer.unapply _)

如何解读波浪标志和问号?

解决方法

您正在查看Slick Table定义,该定义遵循使用名为*的方法定义 Table的默认投影的Slick 1.0版本. ?s加入 Column以构成一种投影构建器模式中返回的默认视图. ?s表示哪些字段代表Customer类中的Option值和<>是 Projection特征中的方法名称.你可以想到<>用于在这里为客户拿出东西或将东西放入数据库.如果您的某些内容映射不正确,例如,如果该表没有隐式dateTypeMapper,则<>函数是您手动调整进入和退出Customer案例类以进行日期转换的值的位置.

老实说,找出这些方法的来源在IDE中更容易,因为文档没有描述类的细节,并且Slick scaladocs中有很多类.

这是1.0.1 Lifted Embedded文档的链接.

(编辑:李大同)

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

    推荐文章
      热点阅读