TypeORM Active Recordパターンとデータマッパーパターンが使える
公式ドキュメントにありますように、TypeORMではActive Recordパターンとデータマッパーパターンのどちらかを選んで使用することができます。
この二つのパターンについてはTypeORMに限らず一般的なものですが、どちらを選択したら良いかはドキュメントにも記載されています。
シンプルで小さなアプリケーションにおいてはActive Recordパターンが適しており、大きく複雑なアプリケーションにおいてはデータマッパーパターンが適しています。
これが何をいっているかは、それぞれのパターンがどのようなものかを理解する必要があります。
Active Recordパターン
Model(TypeORMのEntity)がデータベースを操作する処理(保存、削除、取得)を持ちます。
結果としてDB設計が複雑になるとModelも複雑化します。
データマッパーパターン
Modelにはデータベースを操作するための処理は書きません。代わりにリポジトリと呼ばれるクラスに書きます。
これによって、Modelはシンプルになり、複雑な処理はリポジトリに任せることができます。
公式ドキュメントでは、Active Recordパターンの場合は、姓と名からユーザーを取得するfindByNameという処理をUserクラスに書いています。
一方で、データマッパーパターンの場合は、UserRepositoryというリポジトリクラスにfindByNameという処理を書いています。
最近のコメント