光滑的类定义:错误声明日期隐含值
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
,只需将其定义放在列定义之前。
【讨论】:
以上是关于光滑的类定义:错误声明日期隐含值的主要内容,如果未能解决你的问题,请参考以下文章