org.squeryl.Schemaを見てたらどうやらSquerylにもコールバック機能があるみたいなので使ってみた。
ちなみにorg.squeryl.Schemaで定義されているコールバックは
def callbacks: Seq[LifecycleEvent] = Nil
と、何も定義されてない。
使い方は簡単でorg.squeryl.Schemaを継承したobjectで↑のcallbacksを再定義するだけ。
import org.squeryl.Schema import org.squeryl.internals.LifecycleEvent object SampleSchema extends Schema { val users = table[User] override def callbacks: Seq[LifecycleEvent] = { Seq(beforeInsert(users) call(x => コールバックで実行したい処理 )) } }
定義されてるコールバックは↓
- beforeInsert
- beforeUpdate
- beforeDelete
- afterInsert
- afterUpdate
- afterDelete
(※factoryForってのもあるけど何するんだろ?)
各モデルに対して共通の事前/事後処理するのに便利ね。