我有一个只有一列(日期)的表。这就是我在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的隐式转换。
答案 0 :(得分:1)
您应该能够通过明确提供值来解决这个问题:
def reportDate = column[LocalDate]("report_date")(localDateColumnType)
答案 1 :(得分:0)
为了保持隐含的内容而不是明确地引用localDateColumnType
,只需将其定义放在列定义之前。