【问题标题】:Can't find Types Like TimeStamp Date And Point When using Slick-pg使用 Slick-pg 时找不到像 TimeStamp Date 和 Point 这样的类型
【发布时间】:2015-04-15 12:16:13
【问题描述】:

我正在使用 slick-pg 来访问 Point 等类型。 但是按照github页面使用部分的例子之后,我仍然无法获得像Point类这样的访问类型。

这就是我所拥有的

CustomPostgresDriver.scala

package app.utils

import slick.driver.PostgresDriver
import com.github.tminglei.slickpg._

trait CustomPostgresDriver extends PostgresDriver
with PgArraySupport
with PgDateSupport
with PgRangeSupport
with PgHStoreSupport
with PgPlayJsonSupport
with PgSearchSupport
with PgPostGISSupport {
  override val pgjson = "jsonb" //to keep back compatibility, pgjson's value was "json" by default

  override lazy val Implicit = new ImplicitsPlus {}
  override val simple = new SimpleQLPlus {}

  //////
  trait ImplicitsPlus extends Implicits
  with ArrayImplicits
  with DateTimeImplicits
  with RangeImplicits
  with HStoreImplicits
  with JsonImplicits
  with SearchImplicits
  with PostGISImplicits

  trait SimpleQLPlus extends SimpleQL
  with ImplicitsPlus
  with SearchAssistants
  with PostGISAssistants
}

object CustomPostgresDriver extends CustomPostgresDriver

Users.scala

package app.models

import app.utils.CustomPostgresDriver.simple._

case class User(
    id              : Long,
    firstName       : String,
    lastName        : String,
    phone           : String,
    lat             : Point,
    long            : Point,
    updatedAt       : Timestamp,
    createdAt       : Timestamp,
)

class Users(tag: Tag) extends Table[User](tag, "USERS") {
    def id        = column[Long]("USER_ID", O.PrimaryKey, O.AutoInc)
    def firstName = column[String]("FIRST_NAME", O.NotNull)
    def lastName  = column[String]("LAST_NAME", O.NotNull)
    def phone     = column[String]("PHONE_NUMBER", O.NotNull)
    def lat       = column[Point]("LATITUDE", O.NotNull)
    def long      = column[Point]("LONGITUDE", O.NotNull)
    def updatedAt = column[Timestamp]("UPDATED_AT")
    def createdAt = column[Timestamp]("CREATED_AT")
    def *         = (id.?, firstName, lastName, phone, lat, long, updatedAt, createdAt) <> (User.tupled, User.unapply)
}

val users = TableQuery[Users]

但是找不到 Point,intellij 给我的 Timestamp 建议是 java.sql.Timestamp

我做错了什么? 这已经阻止了我好几天,任何帮助将不胜感激。 谢谢大家

【问题讨论】:

  • 为什么 lat+long 都是一个点? A Point 有一个 x,y,因此可以在一列中表示您的纬度/经度
  • 好点,我会调查一下
  • 您使用的是 PostGIS 还是仅使用标准的 postgresql 几何类型 (postgresql.org/docs/9.4/static/datatype-geometric.html)?我不确定 pg-slick 是否支持这些(我尝试搜索他们的 git repo 并且只找到了 postgis 类型)。
  • 我正在使用 PostGIS

标签: postgresql scala slick slick-2.0


【解决方案1】:

您的代码找不到明显问题,请提供更多详细信息。

但是你最好在githubslick-pg提出问题,因为我不能总是成功访问stackoverflow,这在我们国家经常被阻止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多