光滑的类定义:错误声明日期隐含值

Posted

技术标签:

【中文标题】光滑的类定义:错误声明日期隐含值【英文标题】:Slick class definition: error declaring date implicit value 【发布时间】:2016-05-06 20:31:02 【问题描述】:

我有一张只有一列(日期)的表格。这就是我试图在 Slick 3.x 中对其建模的方式:

数据库类:

import slick.driver.mysqlDriver.api._
import java.sql.Date
import java.time.LocalDate

class ReportDateDB(tag: Tag) extends Table[ReportDateVO](tag, "report_dates") 

  def reportDate = column[LocalDate]("report_date")

  def * = (reportDate) <> (ReportDateVO.apply, ReportDateVO.unapply)

  implicit val localDateColumnType = MappedColumnType.base[LocalDate, Date](
    d => Date.valueOf(d),
    d => d.toLocalDate
  )


值对象案例类:

import java.time.LocalDate

case class ReportDateVO(reportDate: LocalDate)

问题是我在 DB 类中收到以下错误(当我声明字段 reportDate 时):

找不到参数 tt 的隐式值: slick.ast.TypedType[java.time.LocalDate] 没有足够的参数 方法栏:(隐式tt: slick.ast.TypedType[java.time.LocalDate])slick.lifted.Rep[java.time.LocalDate]。 未指定值参数 tt。

这是什么错误以及如何解决?定义了从/到 LocalDate/sql.Date 的隐式转换。

【问题讨论】:

【参考方案1】:

您应该能够通过显式提供值来解决此问题:

def reportDate = column[LocalDate]("report_date")(localDateColumnType)

【讨论】:

【参考方案2】:

为了保持隐含而不是显式引用localDateColumnType,只需将其定义放在列定义之前。

【讨论】:

以上是关于光滑的类定义:错误声明日期隐含值的主要内容,如果未能解决你的问题,请参考以下文章

slick.jdbc.SetParameter [List [Int]]的隐含值

STM32编译错误,初学者求指点

c ++由于命名空间导致无法解释的类“尚未声明”错误

使用 Swift 的预期声明错误

反应/打字稿:参数“道具”隐含了“任何”类型错误

在日期变量中反应日期范围选择器错误