この例では、DB2® データベース GSDB から部門と従業員の情報を返す SQL 照会を取り上げます。 さらに、従業員の情報を部門ごとに編成するために、pureQuery のネストされた Bean を作成します。 最上位の Bean は、Emp Bean のリストを格納する Dept Bean です。
この例のインターフェース・クラスで使用する Dept1 クラスには、ORGANIZATION 表からのデータが入ります。
この例のインライン SQL 照会で使用する Dept2 クラスには、ORGANIZATION 表からのデータが入ります。
Emp クラスでは、EMPLOYEE 表と EMPLOYEE_HISTORY 表からデータを取り出します。 Emp クラスで定義する Emp Bean は、Dept1 Bean と Dept2 Bean の子 Bean になります。
SELECT E.EMPLOYEE_CODE, E.FIRST_NAME, E.LAST_NAME, E.DATE_HIRED,
ORG.ORGANIZATION_CODE, ORG.ORGANIZATION_NAME_EN
FROM EMPLOYEE AS E, EMPLOYEE_HISTORY AS EH, ORGANIZATION AS ORG
WHERE EH.EMPLOYEE_CODE = E.EMPLOYEE_CODE
AND EH.ORGANIZATION_CODE = ORG.ORGANIZATION_CODE
AND EH.RECORD_END_DATE IS NULL
ORDER BY ORGANIZATION_CODE, E.LAST_NAME;
EMPLOYEE_HISTORY 表には、1 人の従業員のレコードが複数入っている場合もあります。
現在の従業員情報には終了日付がありません。
AND EH.RECORD_END_DATE IS NULL という述部で照会に制限をかければ、現在の従業員の履歴だけを返すことができます。この例で使用している GSDB データベースとそれぞれの表については、pureQuery のネストされた Bean のサンプルでアクセスする表を参照してください。