2016-06-23 1 views
0

Я пытаюсь сохранить список диапазонов временных меток в столбце «Доступный» таблицы PostgreSQL. Я использую slick-pg, чтобы помочь. Для данных таблицы у меня есть:Сохранение массива диапазонов временных меток в postgresql с помощью PlaySlick и 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

В классе вы делаете некоторые DAO доступ, впрыснуть DatabaseConfigProvider так:

class Class @Inject() (protected val dbConfigProvider: DatabaseConfigProvider) 

и сделать его extends HasDatabaseConfigProvider[MyPostgresDriver].

Вы должны импорта: (база данных является имя пакета, в котором находится файл MyPostgresDriver)

import database.MyPostgresDriver.api._ 
import database.MyPostgresDriver 
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider} 

Вот файл MyPostgresDriver:

package database 

import com.github.tminglei.slickpg._ 

trait MyPostgresDriver extends ExPostgresDriver 
    with PgArraySupport 
    with PgDate2Support 
    with PgPlayJsonSupport 
    with PgNetSupport 
    with PgLTreeSupport 
    with PgRangeSupport 
    with PgHStoreSupport 
    with PgSearchSupport 
    with PgPostGISSupport { 

    override val pgjson = "jsonb" 
    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 

    override val api = new API with ArrayImplicits 
    with DateTimeImplicits 
    with PlayJsonImplicits 
    with NetImplicits 
    with LTreeImplicits 
    with RangeImplicits 
    with HStoreImplicits 
    with SearchImplicits 
    with PostGISImplicits 
    with SearchAssistants {} 
} 

object MyPostgresDriver extends MyPostgresDriver 

(Выберите только необходимые implicits) ,