Spring JDBC を使用したクラス階層のマッピングに関して、コミュニティが「ベスト プラクティス」と見なしているものを知りたいと思いました。
本格的な ORM ツールを使用することはできませんが、Spring JDBC を使用して、JDBC の退屈な性質を軽減しています。非常に頻繁に利用するクラスの 1 つに BeanPropertyRowMapper があります。これは、使いやすさと、結果セットから型を区別しない Bean プロパティへのアクセスを可能にする機能のためです。
すべてが 1 つのテーブルにマップされるクラス階層があります (この小さなクラス階層では、階層ごとのテーブル アプローチを採用しています)。そのため、テーブルには、実際にインスタンス化する必要があるクラスを決定するために使用できる classId 列が含まれています。元。1 = マネージャー、2 = 従業員、3 = 請負業者。これらはすべて「人物」ですが、人物の各サブクラスには、そのクラスに固有のいくつかの属性があります。
私の最初の考えは、BeanPropertyRowMapper のサブクラスを作成し、このロジックを挿入して、「列 A = 1 の場合は Manager をインスタンス化し、通常のバインディングを実行する」ということです。
これは合理的なアプローチのように思えますか? あなたのために働いた他の提案はありますか?