slick-joda-mapperはSlickでjoda-timeを使うときに型の変換をいい感じにしてくれる便利なライブラリなのですが一点だけ難点があります。
それはRDBMSのドライバーごとにimportが必要なところです。
import com.github.tototoshi.slick.H2JodaSupport._ // H2を使う場合
import com.github.tototoshi.slick.PostgresJodaSupport._ // Postgresを使う場合
import com.github.tototoshi.slick.MySQLJodaSupport._ // MySQLを使う場合
...
etc
ソースコード中に使用するドライバーを直がきしないといけなくなるため、特定のRDBMSに依存させたくないプロダクトをつくってるときに困ります。
それがplay-slickの仕組みを使うとこんな感じで書けるようになります。
object MyDriver extends slick.GenericJodaSupport(play.api.db.slick.Config.driver)
import MyDriver._
こんなふうに play.api.db.slick.Config.driver
としてドライバーを持ってきてあげると
application.conf
に書かれたドライバーの設定からいい感じに処理してくれます。
おそらくplay-slick使わずともPlay.Current
から持ってくることもできると思いますがPlayでSlickをplay-slickなしで使うことも少ないでしょう。
最近、Play framework + AngularJS(with TypeScript)でリアルタイムコミュニケーションツールをちょこちょこ作ってて気付いた話でした。
https://github.com/phantomtype/Phantasm