假设我有一个使用 Salat/Casbah/Mongo 堆栈持久化的 Scala 案例类,我想设置预持久性验证逻辑,就像我可以在 Rails 中使用 ActiveRecord 挂钩或在 Java 中使用 JSR 303 bean 验证一样轻松地做到这一点。
也许有一种更好的方法可以在功能范式中考虑这一点,但我想完成类似以下的事情:
case class SomeItem(
id: ObjectId = new ObjectId,
someProperty: String) {
@PrePersistence
def validate() = {
//perform some logic
//fail document save in certain conditions
}
}
我无法找到有关如何在 Salat 中执行此类操作的任何文档。我确实看到了一个 @Persist 注释,但它似乎专注于序列化特定值而不是创建钩子。
似乎一种选择是为我的案例类覆盖 SalatDAO 中的保存方法。有没有人有这方面的例子或知道更好的内置方法来处理与预持久性事件相关的验证?
谢谢!