Lorsque plusieurs colonnes ou expressions apparaissent dans une liste de sélection de l'instruction SELECT, il ne peut y avoir aucune transformation naturelle des colonnes en une classe existante. Dans ce cas, vous devez choisi entre créer une classe à usage spécial et utiliser une classe d'objectif général comme java.util.Map.
Par exemple, partez du principe qu'un rapport est nécessaire car il indique le nombre moyen d'années de formation (EDLEVEL) pour chaque service (WORKDEPT) de plus de trois employés. Une liste d'objetsMap comprenant les clés de average_edlevel et workdept est obtenue grâce à une logique d'application similaire à celle-ci :
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" );
La logique ci-dessus utilise un appel de la méthode queryList, définie par public List<Map<String, Object>> queryList(String sql, Object... parameters)
Chaque ligne du résultat de la requête devient un objet Map. La liste de tous les objets Map contient le résultat complet de la requête. Notez que les légendes de la carte sont créées à l'aide de noms en minuscules.