Listar se o campo é chave primária ou estrageira

Galera alguém pode me dar uma ajuda.
Estou tentando usar o getCrossReference para pegar a informação de um
campo da tabela, se esse campo é FK.
E no código abaixo o sistema não quer passar pelo while e me mostrar o A informação.
Alguém sabe o que acontece?
ou já usou esse comando?

[code] dbmd = mConn.getMetaData();

        //--- Cria o Statement a ser usado. ---
        stm = mConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
        
        //--- Busca MetaData da tabela. ---
        rs = stm.executeQuery("SELECT * FROM " + tabela);
        metaData = rs.getMetaData();
        
        rs1 = dbmd.getCrossReference("", "", "PlanoSaude", "", "", "phPadrao");
        while (rs1.next()) 
        {
            System.out.println("Primary Key = " + rs1.getString(1));
            log ("FKey = " + rs1.getString(1));
        }[/code]

SALVE SALVE

Aqui esta a resposta
quem precisar faça proveito.

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=38124&highlight=

Lembrando que o verdadeiro segredo disso, é a nova abordagem chamada: METADATA.

Aqui no guj, inclusive, tem um artigo sobre isso.

http://www.guj.com.br/java.tutorial.artigo.136.1.guj