我正在尝试将时间戳范围列表存储到PostgreSQL表的“可用”列中。我正在使用slick-pg来帮忙。对于我有的表数据:
create table users (
id text NOT NULL PRIMARY KEY,
action text NOT NULL,
scheduled timestamptz,
available tstzrange[]
);
在我的DAO中,我有:
private class UsersTable(tag: Tag) extends Table[User](tag, "users") {
def id = column[String]("id", O.PrimaryKey)
def action = column[String]("action")
def timestamp = column[Option[Timestamp]]("scheduled")
def available = column[Option[List[com.github.tminglei.slickpg.Range[Timestamp]]]]("available")
def * = (id, action, timestamp, available) <> (User.tupled, User.unapply _)
}
该表的相关案例类:
case class User(id: String, action: String, timestamp: Option[Timestamp] = None, available:Option[List[com.github.tminglei.slickpg.Range[Timestamp]]] = None)
我知道我错过了一个隐含的东西,类似于example file中的含义。但是我仍然是Scala的新手,并坚持如何定义它。
答案 0 :(得分:0)
在课堂上你正在进行一些DAO访问,像这样注入<resources>
:
DatabaseConfigProvider
并将其设为class Class @Inject() (protected val dbConfigProvider: DatabaseConfigProvider)
。
你必须导入:(数据库是包的名称,其中是MyPostgresDriver文件)
extends HasDatabaseConfigProvider[MyPostgresDriver]
这是MyPostgresDriver文件:
import database.MyPostgresDriver.api._
import database.MyPostgresDriver
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
(仅选择所需的含义)。