Pessoal,
estou com um problema ... estou mapeando meu banco por jdbc pego metadata e verifico as tabelas vejos as chaves primarias estrangeiras e etc...
o problema que estou tendo é para identificar se a tabela é associativa. Eu fiz até uma verificação mais não garante nem 40% ele verifica se
a tabela associativa tem 3 ou 2 campos se tiver ele verifica se existe duas FK nela ai ele define como tabela associativa. Preciso de uma maneira
que me de mais segurança ! Valeu
O código que eu fiz foi esse:
public boolean verificaAssociativa(String nomeTabela)
{
DatabaseMetaData metadata;
ResultSet rs;
int contadorAtributos = 0;
int contadorChaveFK = 0;
try {
getConexao().openConnection();
metadata = getConexao().getConnection().getMetaData();
rs = metadata.getColumns(null, null, nomeTabela, "%");
while (rs.next()) {
contadorAtributos++;
}
if (contadorAtributos == 2 || contadorAtributos == 3) {
rs = metadata.getImportedKeys(getConexao().getConnection().getCatalog(), null, nomeTabela);
while (rs.next()) {
contadorChaveFK++;
}
rs.close();
}
} catch (SQLException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
getConexao().closeConnection();
}
if (contadorChaveFK == 2) {
return true;
}
return false;
}