在 Ruby on Rails 中,每个模型实体都有一个“validate_on_something ”钩子方法,该方法将在实体实际持久化到数据库之前被调用。我想要 Google App Engine 中的类似功能。我知道您可以通过在声明中向它们传递参数来对单个属性进行验证。但是,如果我希望做更多的验证,在模型类声明中是否有一些地方可以做到这一点?
同样,有时实体需要修改才能真正持久化到数据库中。我可能需要在实体实际写入数据库之前修改(转换)实体。实体类声明中是否有允许我这样做的地方?
我知道我可以将这些转换/验证放在课堂之外。但这似乎不是好的 OO 设计。看起来确实应该有一些钩子方法可以在模型中自动调用以满足这些需求。
所以我的问题是,在实体被持久化之前处理实体的验证和转换的最合适的方法是什么?