[RESOLVIDO] Erro usando NamedQuery no JPA com swing

Galera, criei algumas classes de entidade pra acesso ao banco de dados usando JPA no Netbeans 7.2.1, mas quando executei uma query ocorreu o seguinte erro:

Query argument nrPrestador not found in the list of parameters provided during query execution.

E não estou conseguindo localizar onde está o erro.

Nota: A query em questão é para selecionar UM registro que existe no banco de dados por meio do ID, mas não funciona, já passei o objeto com o id que eu quero e ainda assim está ocorrendo o erro.

Segue o código da classe:

package persistencia.siscas;

import java.io.Serializable;
import java.util.List;
import java.util.Objects;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

@Entity
@Table(catalog = "dbsghu", schema = "public")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Prestador.findAll", query = "SELECT p FROM Prestador p"),
    @NamedQuery(name = "Prestador.findByNrPrestador", query = "SELECT p FROM Prestador p WHERE p.nrPrestador = :nrPrestador"),
    @NamedQuery(name = "Prestador.findByDsRazaoSocial", query = "SELECT p FROM Prestador p WHERE p.dsRazaoSocial = :dsRazaoSocial"),
    @NamedQuery(name = "Prestador.findByNmNomeFantasia", query = "SELECT p FROM Prestador p WHERE p.nmNomeFantasia = :nmNomeFantasia"),
    @NamedQuery(name = "Prestador.findByDsCNPJ", query = "SELECT p FROM Prestador p WHERE p.dsCNPJ = :dsCNPJ"),
    @NamedQuery(name = "Prestador.findByDsInscricaoEstadual", query = "SELECT p FROM Prestador p WHERE p.dsInscricaoEstadual = :dsInscricaoEstadual"),
    @NamedQuery(name = "Prestador.findByDsInscricaoMunicipal", query = "SELECT p FROM Prestador p WHERE p.dsInscricaoMunicipal = :dsInscricaoMunicipal"),
    @NamedQuery(name = "Prestador.findByDsCodigoIBGE", query = "SELECT p FROM Prestador p WHERE p.dsCodigoIBGE = :dsCodigoIBGE"),
    @NamedQuery(name = "Prestador.findByDsCodigoCNES", query = "SELECT p FROM Prestador p WHERE p.dsCodigoCNES = :dsCodigoCNES"),
    @NamedQuery(name = "Prestador.findByBlAssociacao", query = "SELECT p FROM Prestador p WHERE p.blAssociacao = :blAssociacao"),
    @NamedQuery(name = "Prestador.findByBlAtivo", query = "SELECT p FROM Prestador p WHERE p.blAtivo = :blAtivo"),
    @NamedQuery(name = "Prestador.findByDsLogotipo", query = "SELECT p FROM Prestador p WHERE p.dsLogotipo = :dsLogotipo"),
    @NamedQuery(name = "Prestador.findByBlOcupado", query = "SELECT p FROM Prestador p WHERE p.blOcupado = :blOcupado")})
public class Prestador implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "nr_prestador")
    private Short nrPrestador;
    @Basic(optional = false)
    @Column(name = "ds_razaosocial")
    private String dsRazaoSocial;
    @Basic(optional = false)
    @Column(name = "nm_nomefantasia")
    private String nmNomeFantasia;
    @Basic(optional = false)
    @Column(name = "ds_cnpj")
    private String dsCNPJ;
    @Column(name = "ds_inscricaoestadual")
    private String dsInscricaoEstadual;
    @Column(name = "ds_inscricaomunicipal")
    private String dsInscricaoMunicipal;
    @Basic(optional = false)
    @Column(name = "ds_codigoibge")
    private String dsCodigoIBGE;
    @Basic(optional = false)
    @Column(name = "ds_codigocnes")
    private String dsCodigoCNES;
    @Basic(optional = false)
    @Column(name = "bl_associacao")
    private boolean blAssociacao;
    @Basic(optional = false)
    @Column(name = "bl_ativo")
    private boolean blAtivo;
    @Column(name = "ds_logotipo")
    private String dsLogotipo;
    @Basic(optional = false)
    @Column(name = "bl_ocupado")
    private boolean blOcupado;
    @JoinTable(name = "prestador_sistema", joinColumns = {
        @JoinColumn(name = "nr_prestador", referencedColumnName = "nr_prestador")}, inverseJoinColumns = {
        @JoinColumn(name = "nr_sistema", referencedColumnName = "nr_sistema")})
    @ManyToMany
    private List<Sistema> sistemaList;
    @JoinTable(name = "prestador_usuario", joinColumns = {
        @JoinColumn(name = "nr_prestador", referencedColumnName = "nr_prestador")}, inverseJoinColumns = {
        @JoinColumn(name = "nr_usuario", referencedColumnName = "nr_usuario")})
    @ManyToMany
    private List<Usuario> usuarioList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "prestador")
    private List<PrestadorContatos> prestadorContatosList;
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "prestador")
    private PrestadorEndereco prestadorEndereco;

    public Prestador() {
    }

    public Prestador(Short nrPrestador) {
        this.nrPrestador = nrPrestador;
    }

    public Prestador(Short nrPrestador, String dsRazaoSocial, String nmNomeFantasia, String dsCNPJ, String dsCodigoIBGE, String dsCodigoCNES, boolean blAssociacao, boolean blAtivo, boolean blOcupado) {
        this.nrPrestador = nrPrestador;
        this.dsRazaoSocial = dsRazaoSocial;
        this.nmNomeFantasia = nmNomeFantasia;
        this.dsCNPJ = dsCNPJ;
        this.dsCodigoIBGE = dsCodigoIBGE;
        this.dsCodigoCNES = dsCodigoCNES;
        this.blAssociacao = blAssociacao;
        this.blAtivo = blAtivo;
        this.blOcupado = blOcupado;
    }

    public Short getNrPrestador() {
        return nrPrestador;
    }

    public void setNrPrestador(Short nrPrestador) {
        this.nrPrestador = nrPrestador;
    }

    public String getDsRazaoSocial() {
        return dsRazaoSocial;
    }

    public void setDsRazaoSocial(String dsRazaoSocial) {
        this.dsRazaoSocial = dsRazaoSocial;
    }

    public String getNmNomeFantasia() {
        return nmNomeFantasia;
    }

    public void setNmNomeFantasia(String nmNomeFantasia) {
        this.nmNomeFantasia = nmNomeFantasia;
    }

    public String getDsCNPJ() {
        return dsCNPJ;
    }

    public void setDsCNPJ(String dsCNPJ) {
        this.dsCNPJ = dsCNPJ;
    }

    public String getDsInscricaoEstadual() {
        return dsInscricaoEstadual;
    }

    public void setDsInscricaoEstadual(String dsInscricaoEstadual) {
        this.dsInscricaoEstadual = dsInscricaoEstadual;
    }

    public String getDsInscricaoMunicipal() {
        return dsInscricaoMunicipal;
    }

    public void setDsInscricaoMunicipal(String dsInscricaoMunicipal) {
        this.dsInscricaoMunicipal = dsInscricaoMunicipal;
    }

    public String getDsCodigoIBGE() {
        return dsCodigoIBGE;
    }

    public void setDsCodigoIBGE(String dsCodigoIBGE) {
        this.dsCodigoIBGE = dsCodigoIBGE;
    }

    public String getDsCodigoCNES() {
        return dsCodigoCNES;
    }

    public void setDsCodigoCNES(String dsCodigoCNES) {
        this.dsCodigoCNES = dsCodigoCNES;
    }

    public boolean getBlAssociacao() {
        return blAssociacao;
    }

    public void setBlAssociacao(boolean blAssociacao) {
        this.blAssociacao = blAssociacao;
    }

    public boolean getBlAtivo() {
        return blAtivo;
    }

    public void setBlAtivo(boolean blAtivo) {
        this.blAtivo = blAtivo;
    }

    public String getDsLogotipo() {
        return dsLogotipo;
    }

    public void setDsLogotipo(String dsLogotipo) {
        this.dsLogotipo = dsLogotipo;
    }

    public boolean getBlOcupado() {
        return blOcupado;
    }

    public void setBlOcupado(boolean blOcupado) {
        this.blOcupado = blOcupado;
    }

    @XmlTransient
    public List<Sistema> getSistemaList() {
        return sistemaList;
    }

    public void setSistemaList(List<Sistema> sistemaList) {
        this.sistemaList = sistemaList;
    }

    @XmlTransient
    public List<Usuario> getUsuarioList() {
        return usuarioList;
    }

    public void setUsuarioList(List<Usuario> usuarioList) {
        this.usuarioList = usuarioList;
    }

    @XmlTransient
    public List<PrestadorContatos> getPrestadorContatosList() {
        return prestadorContatosList;
    }

    public void setPrestadorContatosList(List<PrestadorContatos> prestadorContatosList) {
        this.prestadorContatosList = prestadorContatosList;
    }

    public PrestadorEndereco getPrestadorEndereco() {
        return prestadorEndereco;
    }

    public void setPrestadorEndereco(PrestadorEndereco prestadorEndereco) {
        this.prestadorEndereco = prestadorEndereco;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 73 * hash + Objects.hashCode(this.dsCNPJ);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Prestador other = (Prestador) obj;
        if (!Objects.equals(this.dsCNPJ, other.dsCNPJ)) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "persistencia.siscas.Prestador[ nrPrestador=" + nrPrestador + " ]";
    }
}

Posta sua query, o erro ta falando que vc não passou esse parametro nrPrestador.

Mas coloca a query ai

EJBQueryImpl(ReadObjectQuery(name="Prestador.findByNrPrestador" referenceClass=Prestador sql="SELECT nr_prestador, bl_associacao, bl_ativo, bl_ocupado, ds_cnpj, ds_codigocnes, ds_codigoibge, ds_inscricaoestadual, ds_inscricaomunicipal, ds_logotipo, ds_razaosocial, nm_nomefantasia FROM dbsghu.public.PRESTADOR WHERE (nr_prestador = ?)"))

Essa é a query gerada pelo JPA.

Galera, após muitas pesquisas na web e de ler e reler o javadoc, entendi onde estava o meu erro, não erra na classe da entidade, mas no método no qual eu passava o select; este é o código (Estou usando ‘Generics’):

    /**
     * Método da persistência para seleção de registros no banco de dados.
     *
     * @param vstrQueryNamed Nome da Query a ser executada na persistência. <p> Nota: Nome existente na classe da entidade para queries nomeadas.
     * @param vstrNomeCampo Nome do campo na tabela do banco de dados. <p> Nota: Nome do campo na classe da entidade; não é o nome do campo no banco de dados.
     * @param vstrParametro Valor do parâmetro a ser pesquisado. <p> Nota: Em caso de pesquisa por ID o valor do ID a ser pesquisado.
     * @return Objeto selecionado pela query. <p> Nota: Objeto de tipo de retorno do método.
     */
    public T select(String vstrQueryNamed, String vstrNomeCampo, int vintParametro) throws Exception {
        T obj; //Objeto de retorno.
        TypedQuery<T> tpdQry = (TypedQuery<T>) pEntityManager.createNamedQuery(vstrQueryNamed, pEntidade.getClass()); //Query tipada.
        tpdQry.setParameter(vstrNomeCampo, vintParametro); //Passagem do parâmetro de pesquisa.
        obj = (T) tpdQry.getSingleResult(); //Execução da query e 'cast' para o objeto de retorno.
        return obj; //Retorno do objeto pesquisado.
    }

O erro na pesquisa estava ocorrendo exatamente porque não estava sendo passado o campo a ser pesquisado, apenas o valor do parâmetro.
Agora funcionou perfeitamente.

Fica aí o código para quem tiver passando pelo mesmo problema.

Mesmo assim agradeço a atenção de todos.