Postgresql Scala Slick类表定义,声明日期时间列时出错
下面是DB类 在创建表定义时,Datetime列上存在编译错误Postgresql Scala Slick类表定义,声明日期时间列时出错,postgresql,scala,slick,Postgresql,Scala,Slick,下面是DB类 在创建表定义时,Datetime列上存在编译错误 在上创建的\u应在更新当前日期 更新的_on应该只模拟已传递的日期 套餐表 import play.data.format.Formats.DateTime import slick.driver.PostgresDriver.api._ object Main { case class Account( id: Long = 0L,
import play.data.format.Formats.DateTime
import slick.driver.PostgresDriver.api._
object Main {
case class Account(
id: Long = 0L,
owner: Long,
name: String,
created_on: DateTime,
updated_on: DateTime,
author_id: Long,
updated_by: Long,
external_id: String
)
类AccountTable(标记:tag)扩展了TableAccount{
def id = column[Long]("id")
def owner= column[Long]("id")
def name= column[String]("name")
def created_on= column[DateTime]("created_on")
def updated_on= column[DateTime]("updated_on")
def author_id= column[Long]("author_id")
def updated_by= column[Long]("updated_by")
def external_id= column[String]("external_id")
def * = (owner, name, created_on,
updated_on,author_id,updated_by,external_id) <> (Account.tupled,
Account.unapply)
def id=列[Long](“id”)
def owner=列[Long](“id”)
def名称=列[字符串](“名称”)
def created_on=列[DateTime](“created_on”)
def updated_on=列[日期时间](“updated_on”)
def author\u id=列[Long](“author\u id”)
def updated_by=列[Long](“updated_by”)
def external_id=列[String](“external_id”)
def*=(所有者、名称、创建时间、,
更新日期、作者id、更新人、外部id)(Account.tuple,
账户(不适用)
}
}
我不确定您使用的是什么
DateTime
类。也许是Joda timeDateTime
类
为此,您需要提供从DateTime
到Slick知道的类型的映射(对于数据库中的列来说也是有意义的)。例如,您可以将日期时间
映射到时间戳
:
导入java.sql.Timestamp
导入org.joda.time.DateTime
导入org.joda.time.DateTimeZone.UTC
//而在你的“主要”。。。
隐式val-jodatateTimeType=
MappedColumnType.base[日期时间,时间戳](
dt=>新的时间戳(dt.getMillis),
ts=>newdatetime(ts.getTime,UTC)
)
…例如。这是在教Slick如何从DateTime
转换为它知道的类型(Timestamp
)
有一个关于这方面的教程,将在中详细介绍
自Slick 3.3以来,它内置了对许多标准Java时间格式的支持
此外,由于Slick 3,您可以在大多数情况下使用.mapTo
映射类。它比
好得多:
def*=(
所有者、姓名、创建人、更新人、作者id、更新人、外部id
).mapTo[帐户]
Slick支持基于JDBC的java.sql.{Date,Time,Timestamp}
<代码>时间戳可能就是您要查找的。您还可以显示您看到的编译错误吗。谢谢,伙计,谢谢,成功了。更重要的是,当我遵循流畅的文档时