Ruby on Rails では、各モデル エンティティには "validate_on_ something " フック メソッドがあり、エンティティが実際にデータベースに永続化される前に呼び出されます。Google App Engine にも同様の機能が必要です。宣言で引数を渡すことにより、個々のプロパティで検証を行うことができることは承知しています。ただし、それ以上の検証を行いたい場合、モデル クラス宣言内にそれを行うことができる場所はありますか?
また、同じように、エンティティを実際にデータベースに永続化する前に、エンティティを変更する必要がある場合があります。エンティティが実際にデータベースに書き込まれる直前に、エンティティを変更 (変換) する必要がある場合があります。エンティティ クラスの宣言に、それを可能にする場所はありますか?
これらの変換/検証をクラスの外に置くことができることを認識しています。しかし、これは良い OO 設計とは思えません。この種のニーズのために、モデルで自動的に呼び出されるフックメソッドが必要なようです。
私の質問は、エンティティが永続化される前にエンティティの検証と変換を処理する最も適切な方法は何ですか?