Scala 如何在表类中重用MappedColumnType?
本例演示了Scala 如何在表类中重用MappedColumnType?,scala,playframework,slick,Scala,Playframework,Slick,本例演示了MappedColumnType的使用: 如何在另一个表类中重用dateColumnType?例如,您可以将其移动到如下特征: trait DateColumnMapper extends HasDatabaseConfig[JdbcProfile] { protected val dbConfig: DatabaseConfig[JdbcProfile] import driver.api._ implicit val dateColumnType = MappedC
MappedColumnType
的使用:
如何在另一个表类中重用
dateColumnType
?例如,您可以将其移动到如下特征:
trait DateColumnMapper extends HasDatabaseConfig[JdbcProfile] {
protected val dbConfig: DatabaseConfig[JdbcProfile]
import driver.api._
implicit val dateColumnType = MappedColumnType.base[Date, Long](
d => d.getTime,
d => new Date(d)
)
}
然后,您可以将此特性包含在所需的任何DAO
或db组件中:
class WhateverDAO
extends WhateverComponent
with HasDatabaseConfig[JdbcProfile]
with DateColumnMapper {
class Whatevers(tag: Tag) extends Table[Whatever](tag, "WHATEVER") {
def anyDate = column[Option[Date]]("ANYDATE")
...
}
}
我试过了,但似乎
dataColumnType
没有被引入扩展类。因此我收到了这个错误:无法找到参数tt:slick.ast.TypedType[java.time.LocalDateTime]的隐式值。
您所指的链接示例使用java.util.Date
。您的错误表明您正在使用java.time.LocalDateTime
。你确定你用的是正确的类型吗?对不起。我从Date
改为使用LocalDateTime
。日期与日期相同。好的,你能更新你的问题并与我们分享你的代码吗?对不起,我真是个白痴。到目前为止,我使用了两种不同的数据类型(一种是Date,另一种是LocalDateTime)。你的代码很有魅力。非常感谢。