Quando a pesquisa acha registro no banco de dados não acontece nada

Bom dia.
tenho uma classe dao onde ao pesquisa no banco de dados e não achar registro ele me retorna que não foi encontrado nenhum registro, mas quando ele acha o registro não acontece nada.

//metodo para pesquisa uma lista de registro pela nota
    public List<Compra> buscarCompraPorNota(int numNota){
        try {
            //criando a lista.
            List<Compra> lista = new ArrayList<>();
            //comando sql para lista os dados.
            String sql = "select codigo_compra, num_nota, serie, dt_entrada, dt_emissao, fornecedor, empresa, "
                    + "almoxarifado, tipo_entrada, forma_pagamento, total, frete, icms_subst, outra_despesa, "
                    + "total_geral from tb_compras inner join tb_fornecedores on (cod_fornecedor = codigo_fornecedor) "
                    + "inner join tb_empresas on (cod_empresa = codigo_empresa) "
                    + "inner join tb_almoxarifados on (cod_almoxarifado = codigo_almoxarifado) "
                    + "inner join tb_tipos_entradas on (cod_tipo_entrada = codigo_tipo_entrada) "
                    + "inner join tb_formas_pagamentos on (cod_forma_pagamento = codigo_forma_pagamento) "
                    + "where num_nota = ?";

            PreparedStatement stmt = con.prepareStatement(sql);
            stmt.setInt(1, numNota);
            ResultSet rs = stmt.executeQuery();
            
            if(rs.next() == false){
                JOptionPane.showMessageDialog(null, "Nenhum Registro Foi Encontrado Para Essa Pesquisa!");
            }else{
                
                System.out.println("Foi Encontrada A Nota: "+ numNota);
                while (rs.next()){
                    Compra obj = new Compra();
                    Fornecedor f = new Fornecedor();
                    Empresa e = new Empresa();
                    Almoxarifado a = new Almoxarifado();
                    TipoEntrada t = new TipoEntrada();
                    FormaPagamento fp = new FormaPagamento();
                    
                    obj.setCodigo(rs.getInt("codigo_compra"));
                    obj.setNumNota(rs.getInt("num_nota"));
                    obj.setSerie(rs.getInt("serie"));
                    obj.setDtEntrada(rs.getDate("dt_entrada"));
                    obj.setDtEmissao(rs.getDate("dt_emissao"));
                    f.setNomeFornecedor(rs.getString("fornecedor"));
                    obj.setFornecedor(f);
                    e.setEmpresa(rs.getString("empresa"));
                    obj.setEmpresa(e);
                    a.setAlmoxarifado(rs.getString("almoxarifado"));
                    obj.setAlmoxarifado(a);
                    t.setTipoEntrada(rs.getString("tipo_entrada"));
                    obj.setTipoEntrada(t);
                    fp.setFormaPagamento(rs.getString("forma_pagamento"));
                    obj.setFormaPagamento(fp);
                    obj.setTotal(rs.getDouble("total"));
                    obj.setFrete(rs.getDouble("frete"));
                    obj.setIcmsSubst(rs.getDouble("icms_subst"));
                    obj.setOutraDespesa(rs.getDouble("outra_despesa"));
                    obj.setTotalGeral(rs.getDouble("total_geral"));
                    
                    lista.add(obj);
                }
            }
            return lista;
        } catch (Exception erro) {
            //retorna aviso de erro na pesquisa se exitir
            JOptionPane.showMessageDialog(null, "Erro :" + erro);
            return null;
        }
    }
}

faz essa alteracao na passagem do parametro numNota e testa primeiro se o codigo
esta retornando valor informando o sql diretamente no bancos de dados antes de inserir
no codigo java.
E esse teu select nao esta no padrao de instrução sql, bota nesse padrão botando o apelidio abreviado para cada campo exemplo
select e.cod_empresa
inner join tb_empresas e

1 curtida

Senhores, não quero atrapalhar, mas será que o problema não e na logica?

    if(rs.next() == false){
        JOptionPane.showMessageDialog(null, "Nenhum Registro Foi Encontrado Para Essa Pesquisa!");
    }else{
       // .....
    }

esse rs.next() , será que ele não acaba cancelando o 1° dado?