Bonjour les gens =)
Petit message car dernièrement, j'ai entrepris d'afficher le résultat d'une requête sous forme d'un tableau HTML.
Pour cela j'utilise :
- PostGres
- apacheTomcat
- driver postgresql
- java (jsp/servlet)
Donc pour obtenir les information liées aux colonnes, j'utilise le fameux ResultSetMetaData de java.sql. Jusque là tout va bien j'arrive à récupérer le nom des colonnes grâce à un getColumnName(int indice).
Mais mon soucis proviens que je dois faire des traitements spécifiques selon la table d'où provient ma colonne. Pour cela j'ai donc voulu utiliser getTableName(int indice). Mais il se trouve que cette fonction ne renvoit rien, juste une chaîne vide "" (ou sinon l'alias de la table selon ce que j'ai pu lire).
J'ai pu récolter sur le net qu'il fallait utiliser une interface du driver postgresql qui est PGResultSetMetaData et de faire un cast agressif de sa classe ResultSetMetaData pour obtenir la fonction getTableBaseName(int indice) qui renvoit le nom d'origine de la table d'appartenance de la colonne voulue.
Mais voila quand je fais le cast, à l'exécution, y'a une grosse exception ClassCastException (que je comprend car j'essaye de faire un cast en spécialisant, donc pas good ...).
mais bon donc au final, pas moyen de récupérer ce fichu le fichu nom de la table de la colonne d'indice i. Donc dans ma table de résultat, j'ai aucun moyen de savoir de quelle table est demandée la colonne. Et il me faut absolument cette information (pas possible de contourner ou d'utiliser un autre algorithme).
Quelqu'un aurait-il déjà eu le problème ou aurait-il une solution miracle ???
Merci d'avance pour toute réponse, car la je sèche très méchamment et c'est complétement bloquant pour mon affichage.
Partager