アプリケーション開発者にとって、基になるデータ ストア (引数のための SQL データベース) に永続化できるドメイン オブジェクトを使用してアプリケーションを作成するための従来のパラダイムは、ドメイン オブジェクトを作成してから、テーブル構造を作成 (または生成) することだと思います。ドメイン オブジェクトの外観と、基になるデータ ストアの構造との間には密接な関係があります。したがって、ドメイン オブジェクトに情報を追加する場合は、コードにフィールドを追加してから、適切なデータベース テーブルに列を追加します。すべておなじみですか?
これは、明確に定義された構造を持つデータ ストア (テーブルと列が事前に定義および固定されている SQL データベースについて主に話している) には十分ですが、現在、ユビキタスな SQL データベースに代わる多くの代替手段が存在し、これらは多くの場合、このようにデータを制約しません。たとえば、MongoDB はNoSQLデータベースであり、データをコレクションに分割しますが、それ以外にデータの構造化はありません。新しいフィールドを追加する場合は、新しい列を定義しません。
ここで質問があります。MongoDB のようなデータ ストアの柔軟性を考えると、このデータを表すドメイン オブジェクトで同様の種類の柔軟性を実現するにはどうすればよいでしょうか? たとえば、Spring を使用して独自のドメイン オブジェクトを作成している場合、データに「middleName」フィールドを追加するときに、ドメイン オブジェクトに「middleName」フィールドを追加する必要がないようにするにはどうすればよいでしょうか? データを動的に検査し、毎回コードを変更することなくドメインオブジェクトでアクセスできるメカニズム/アプローチ/フレームワークを探しています。すべてのアイデアを歓迎します。