複数の列または式が SELECT ステートメントの選択リストにある場合、列から既存のクラスへの自然変換は行われない可能性があります。 このような状況では、特殊用途のクラスを作成するか、または java.util.Map などの汎用クラスを使用するかを選択する必要があります。
例えば、従業員が 3 人より多い各部門 (WORKDEPT) の学校教育の平均年数 (EDLEVEL) を示すレポートが必要であるとします。 Map オブジェクトの List で、キー average_edlevel および workdept を持つものは、以下のようなアプリケーション・ロジックの結果として得られます。
Connection con = DriverManager.getConnection(...); Data db = DataFactory.getData(con); List<Map<String, Object>> edLevelReport = db.queryList( "SELECT AVG(EDLEVEL) AS AVERAGE_EDLEVEL, WORKDEPT FROM " + " SAMPLE_SCHEMA.EMP GROUP BY WORKDEPT HAVING COUNT(*) > 3" );
上記の例では、public List<Map<String, Object>> queryList(String sql, Object... parameters) と定義されたメソッド queryList の呼び出しを使用します。
照会の照会結果からの各行は Map になります。 すべての Map オブジェクトの List には、照会結果全体が含まれます。 マップのキーが、小文字の名前を使用して作成されていることに注意してください。