我正在嘗試爲新的滑動3項目構建自定義數據庫列轉換器。使用MappedColumnType很容易,但必須導入驅動程序api。對於單個DAO類中的一次性類型,這是非常簡單的。但我想在我的所有DAO對象中使用自定義列類型。我一直無法以編譯器可以識別這些含義的方式來構建我的導入。管理滑動3項目中的MappedColumnType轉換
這是我想構建的庫類型的示例。它有一個單獨的轉換器,非常類似於許多Slick 2示例中所見的無處不在的Joda日期轉換器。
package dao
import java.sql.Date
import data.Timestamp
import play.api.db.slick.{DatabaseConfigProvider, HasDatabaseConfigProvider}
import slick.driver.JdbcProfile
case class StandardConversions(protected val dbConfigProvider: DatabaseConfigProvider)
extends HasDatabaseConfigProvider[JdbcProfile] {
import driver.api._
implicit val timestampColumnType = MappedColumnType.base[Timestamp, Date](
{ data => new Date(data.value) },
{ sql => Timestamp(sql.getTime) }
)
}
在DAO類我嘗試做進口是這樣的:
val conversions = StandardConversions(dbConfigProvider)
import conversions._
編譯器錯誤是我們熟悉的:
could not find implicit value for parameter tt: slick.ast.TypedType[data.Timestamp]
我基本上停留在依賴注入,隱地獄。有沒有人想出一個很好的方法來保持他們在Slick 3中的自定義轉換?請分享。
我建議添加播放框架標籤,因爲您在播放中使用滑動。 – Roman