pureQuery Runtime は、表結合を含む SQL 照会から結果を返す Java オブジェクトを自動的に作成してデータを追加します。ネストされた Bean のセットは、SQL 照会から返されたデータを表します。
Bean の階層は、データベースにおける表とデータの関係構造を複写したものです。
また、pureQuery Runtime は、照会からのデータも処理します。
多くの場合、pureQuery Runtime は、データ・アクセス・オブジェクト (DAO) インターフェースとインライン・メソッドに必要な ResultHandlers と RowHandlers を
生成します。
pureQuery Runtime では、ネストされた Bean は 1 対多および 1 対 1 の関係を持つデータを返すことができ、多対多および多対 1 の関係をシミュレートできます。
pureQuery Runtime は、複数の表にあるデータを結合する SQL 照会の結果からネストされた Bean 構造を自動生成する機能をサポートしています。
結合された各表において一致する各行からのデータは結合されて、ResultSet オブジェクトにおいて単一行のデータになります。
ある Bean が他の Bean の java.util.List を含むことができるようにすると、1 つの Bean に ResultSet オブジェクトからの複数行のデータを含めることができます。
ネストすることで、複数の表にあるデータの階層特性が保持され、1 対多の関係が実現されます。
ある Bean が他の Bean を含むことができるようにすると、Bean のレイアウトが単純になり、1 対 1 の関係が実現されます。
多対多の関係は複数の 1 対多の関係でシミュレートでき、多対 1 の関係は複数の 1 対 1 の関係でシミュレートできます。
複数 SQL ステートメントで Bean クラスを使用できます。
次のシナリオでは、異なる状態で同じ Bean を使用できる方法について説明します。
- Department Bean は、当該部門の Employee Bean のリスト、およびその部門の Project Bean のリストを含むことができます。
- Employee Bean は、当該従業員に属する Project Bean のリスト、およびその従業員が関係している Activity Bean のリストを含むことができます。
- Project Bean は、当該プロジェクトに従事している従業員の Employee Bean のリストを含むことができます。
Project Bean は、プロジェクト・リーダーの情報を持つ 1 つの Employee Bean を含むこともできます。
また、Project Bean は、プロジェクト内のすべてのアクティビティーを記述する Activity Bean のリストを含むこともできます。
- Activity Bean は、プロジェクトに関する情報、およびアクティビティーの使用場所となるプロジェクトのリストを含むことができます。
- これらの Bean は、ResultSet に異なる情報を含むさまざまな SQL 照会で再利用されています。
例えば、次のような SQL 照会があります。
- Department 表列、Employee 表列、および Project 表列を結合する結合 SQL。
Department Bean を親 Bean として使用して、1 つ以上の Department Bean を取得します。
各 Department Bean には、当該部門のすべての従業員のリスト、およびその部門のプロジェクトの別のリストが含まれます。
- Employee 表列、Project 表列、および Activity 表列を結合する Join SQL。
Employee Bean を親 Bean として使用して、1 つ以上の Employee Bean を取得します。
Employee Bean ごとに、当該従業員のプロジェクトのリスト、およびその従業員が関係している Activity Bean のリストが含まれます。
- Project 表列および Activity 表列を結合する Join SQL。
Project Bean を親 Bean として使用して、1 つ以上の Project Bean を取得します。
Project Bean ごとに、プロジェクトの Activity Bean のリストが含まれます。
- Activity 表列および Project 表列を結合する Join SQL。
Activity Bean を親 Bean として使用して、1 つ以上の Activity Bean を取得します。
Activity Bean ごとに、当該アクティビティーの使用場所となる Project Bean のリストが含まれます。