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

时间:2016-05-06 20:31:03

标签: playframework playframework-2.0 slick slick-3.0

我有一个只有一列(日期)的表。这就是我在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的隐式转换。

2 个答案:

答案 0 :(得分:1)

您应该能够通过明确提供值来解决这个问题:

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

答案 1 :(得分:0)

为了保持隐含的内容而不是明确地引用localDateColumnType,只需将其定义放在列定义之前。