Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Scala Slick类表定义,声明日期时间列时出错_Postgresql_Scala_Slick - Fatal编程技术网

Postgresql Scala Slick类表定义,声明日期时间列时出错

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,

下面是DB类 在创建表定义时,Datetime列上存在编译错误

  • 在上创建的\u应在更新当前日期

  • 更新的_on应该只模拟已传递的日期

    套餐表

     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 time
    DateTime

    为此,您需要提供从
    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}
    <代码>时间戳可能就是您要查找的。您还可以显示您看到的编译错误吗。谢谢,伙计,谢谢,成功了。更重要的是,当我遵循流畅的文档时