Bonjour,
J'utilise JoinRowSetImpl() afin d'effectuer une jointure sur les enregistrements de 2 ResultSet

Lorsque l'on écrit le prédicat de jointure en 1ere position dans la deuxième clause sql, l'accès au metadata retourne null pour la 2 eme champ de la requete.

ex
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//base1

JoinRowSet jrs = new JoinRowSetImpl();

rs = stmt.executeQuery("select idContrat, cClient from Clients")...
CachedRowSet versement = new CachedRowSetImpl();
        versement.populate(rs);
        versement.setMatchColumn(1); 
        jrs.addRowSet(versement);



//base2
rs2 = stmt.executeQuery("select idContrat, prixContrat, hContrat from Contrats")..
        CachedRowSet ct = new CachedRowSetImpl();
        ct .populate(rs2);
        ct .setMatchColumn(1); // Le critère de jointure
        jrs.addRowSet(ct);
        

RowSetMetaDataImpl rsm = (RowSetMetaDataImpl) jrs.getMetaData();
 for (int i=1; i<=rsm.getColumnCount(); i++){
 System.out.println(rsm.getColumnName(i) + "---" + rsm.getColumnLabel(i));
//console
  idContrat --- Contrat
  cClient --- Code Client
  prixContrat --- Null 
  hContrat --- Prix Contrat (parfois un décalage...)
Pour contourner cette situation j'ai écris le prédicat de jointure en derniere position dans la 2 ème requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
rs2 = stmt.executeQuery("select prixContrat, hContrat, idContrat from Contrats")..
ct .setMatchColumn(3); // Le critère de jointure
Avez-vous déjà rencontré ce probleme ?