Salat / Casbah / Mongoスタックを使用して永続化されるScalaケースクラスがあると仮定して、ActiveRecordフックを使用するRailsまたはJSR303Bean検証を使用するJavaで簡単に実行できるような事前永続化検証ロジックを設定します。
機能的なパラダイムでこれについて考えるより良い方法があるかもしれませんが、私は次のようなことを達成したいと思います。
case class SomeItem(
id: ObjectId = new ObjectId,
someProperty: String) {
@PrePersistence
def validate() = {
//perform some logic
//fail document save in certain conditions
}
}
Salatでこのようなことを行う方法に関するドキュメントを見つけるのに苦労しています。@Persistアノテーションは表示されますが、フックの作成ではなく、特定の値のシリアル化に重点が置かれているようです。
1つのオプションは、私のケースクラスのSalatDAOのsaveメソッドをオーバーライドすることのようです。誰かがこれの例を持っているか、または永続化前のイベントに関連付けられた検証を処理するためのより良い組み込みの方法を知っていますか?
ありがとう!